time="2024-04-23T10:03:28Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-federation-1 Creating Container integration-test-device-1 Creating Container integration-test-experiment-1 Creating Container integration-test-authentication-1 Creating Container integration-test-authorization-1 Creating Container integration-test-gateway-1 Creating Container integration-test-federation-1 Created Container integration-test-experiment-1 Created Container integration-test-gateway-1 Created Container integration-test-device-1 Created Container integration-test-authentication-1 Created Container integration-test-authorization-1 Created Attaching to authentication-1, authorization-1, device-1, experiment-1, federation-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/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/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 federation-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":"2024-04-23T10:03:57Z"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} device-1 | {"level":"info","message":"Device Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:51492","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-04-23T10:03:57Z"} authorization-1 | {"client_addr":"127.0.0.1:51492","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.249085,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:03:57Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1713866637.8460305} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1713866637.846137} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1713866637.8461595} 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":1713866637.8461916} 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":1713866637.8462183} 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":1713866637.846304,"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":1713866637.8472624} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1713866637.8483765} 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:40484","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-04-23T10:03:57.869243769Z","id":"01HW56K0HDA2CRHACQDB34J7W7","name":"crosslab","updated_at":"2024-04-23T10:03:57.869243769Z"},"request_id":"ef19ed7f-f279-4d6b-ba16-1291d9c1a1bf","subsystem":"openfga","timestamp":1713866637.869334} 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:40484","raw_request":{"schema_version":"1.1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01HW56K0JQEEACEH6FR05J557M"},"request_id":"8d97e2a4-81c8-41a0-aff2-b140c5b0c659","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866637.911176} authorization-1 | {"client_addr":"127.0.0.1:51492","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-04-23T10:03:57Z"} authorization-1 | {"client_addr":"127.0.0.1:51492","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.242926,"resp_status":204,"subsystem":"opa","time":"2024-04-23T10:03:57Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.63.0/opa_linux_amd64","latest_version":"0.63.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.63.0","subsystem":"opa","time":"2024-04-23T10:03:58Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:04 +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.021","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"553412e13557e26c508301cddd632c75"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 14ms","method":"HEAD","requestID":"553412e13557e26c508301cddd632c75","responseTime":14,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"23/Apr/2024:10:04:04 +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":"afb844a296b4a1890ef3c487faa5187c"} device-1 | {"level":"info","message":"HEAD /device/status 200 7ms","method":"HEAD","requestID":"d10a07a0-0158-11ef-926d-7f5be4425d00","responseTime":7,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"23/Apr/2024:10:04:04 +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.011","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"d946cd4cef788e39a5fcc8bdfdb42628"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 4ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"d946cd4cef788e39a5fcc8bdfdb42628"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"23/Apr/2024:10:04:04 +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.014","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"be84fbf04bbb570d5e020fcf7a4fda14"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 8ms","method":"HEAD","requestID":"d10f85e0-0158-11ef-93e6-cd033b4512e9","responseTime":8,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"23/Apr/2024:10:04:04 +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.017","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"cf01ee13d949f976c1c8bb1f80e55b0c"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 10ms","method":"HEAD","requestID":"d1130850-0158-11ef-be80-557a03b598db","responseTime":10,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"23/Apr/2024:10:04:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15fb5d26ed2a719e92874c2b4e3ff90e"} authentication-1 | {"level":"info","message":"POST /login 201 144ms","method":"POST","requestID":"15fb5d26ed2a719e92874c2b4e3ff90e","responseTime":144,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY0N30.tdYKIaLVvveDSqtDYhl-fwoplbne1k8KDpTHUb7pOsw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 29ms","method":"GET","requestID":"47885a832f37215e577f3f5e2f669009","responseTime":29,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.992478,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866647,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY0N30.tdYKIaLVvveDSqtDYhl-fwoplbne1k8KDpTHUb7pOsw"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47885a832f37215e577f3f5e2f669009"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":32}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"06c7a4c5-87d6-4723-8005-c6e6bbc93e58","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866647.9165554} authorization-1 | {"level":"info","message":"POST /relations/query 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47885a832f37215e577f3f5e2f669009"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa3fcae9-0fad-4d4c-9dde-d0bfbb9adb71","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866647.9350314} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47885a832f37215e577f3f5e2f669009"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"375a5274-e570-46bc-af18-5266fed24630","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866647.9578795} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"024a38a2-7abe-4985-b53c-d7064dd200c2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866647.959187} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47885a832f37215e577f3f5e2f669009"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":27}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:07.957861915Z"}]},"request_id":"a31ac410-0d95-490d-8d12-b557420a2d52","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866647.968324} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47885a832f37215e577f3f5e2f669009"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.279","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"47885a832f37215e577f3f5e2f669009"} device-1 | {"level":"info","message":"POST /devices? 201 232ms","method":"POST","requestID":"47885a832f37215e577f3f5e2f669009","responseTime":232,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY0N30.tdYKIaLVvveDSqtDYhl-fwoplbne1k8KDpTHUb7pOsw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"59e8db00f43c4b54777b34ee14988c51","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.82558,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866647,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY0N30.tdYKIaLVvveDSqtDYhl-fwoplbne1k8KDpTHUb7pOsw"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59e8db00f43c4b54777b34ee14988c51"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"56eae652-be87-4562-bc7e-304115950ab3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866648.0430727} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59e8db00f43c4b54777b34ee14988c51"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20cb4458-06f5-493d-bf51-201bff5b0091","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866648.0585835} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59e8db00f43c4b54777b34ee14988c51"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"626314bf-b15b-4e88-b075-c4931098f967","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866648.0749795} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9321d5c8-a429-4db7-a988-e171a1625224","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866648.0755649} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59e8db00f43c4b54777b34ee14988c51"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:08.074957935Z"}]},"request_id":"5af5a7de-fcf5-4d1a-8c36-10e3e53baa56","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866648.0874503} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59e8db00f43c4b54777b34ee14988c51"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.100","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59e8db00f43c4b54777b34ee14988c51"} device-1 | {"level":"info","message":"POST /devices? 201 94ms","method":"POST","requestID":"59e8db00f43c4b54777b34ee14988c51","responseTime":94,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fa1deba2fd40eebe32c945c5d3d6ca10","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8a05ad8ee833fd45d106e7130195ec02","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/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":"fa1deba2fd40eebe32c945c5d3d6ca10"} device-1 | {"level":"info","message":"OPTIONS /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/websocket 200 2ms","method":"OPTIONS","requestID":"fa1deba2fd40eebe32c945c5d3d6ca10","responseTime":2,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.009","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8a05ad8ee833fd45d106e7130195ec02"} device-1 | {"level":"info","message":"OPTIONS /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/websocket 200 1ms","method":"OPTIONS","requestID":"8a05ad8ee833fd45d106e7130195ec02","responseTime":1,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"71b65ba6f192041473cb90e8b0b624e6","responseTime":8,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"ffd860a77a98b00ed3e4e95ff63777fc","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.043484,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"71b65ba6f192041473cb90e8b0b624e6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.787055,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffd860a77a98b00ed3e4e95ff63777fc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"ffd860a77a98b00ed3e4e95ff63777fc"} device-1 | {"level":"info","message":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/websocket 200 41ms","method":"POST","requestID":"ffd860a77a98b00ed3e4e95ff63777fc","responseTime":41,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.118","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"71b65ba6f192041473cb90e8b0b624e6"} device-1 | {"level":"info","message":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/websocket 200 109ms","method":"POST","requestID":"71b65ba6f192041473cb90e8b0b624e6","responseTime":109,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"048e97c911412e655c07a70d7763ea5c","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.920068,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"048e97c911412e655c07a70d7763ea5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:07.957861915Z"}]},"request_id":"c1514e19-c2b4-48e4-998e-e261ab2c18de","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866650.5950868} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"048e97c911412e655c07a70d7763ea5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8b059e04-2c83-4acb-834c-2e8593240d4e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"048e97c911412e655c07a70d7763ea5c"} device-1 | {"level":"info","message":"GET /devices/8b059e04-2c83-4acb-834c-2e8593240d4e? 200 42ms","method":"GET","requestID":"048e97c911412e655c07a70d7763ea5c","responseTime":42,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"a316cb048b05015b35850d8ba5f659af","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210337,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a316cb048b05015b35850d8ba5f659af"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:08.074957935Z"}]},"request_id":"4788d5bf-e077-4fbe-838b-ec4c0b9280d3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866650.6571763} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a316cb048b05015b35850d8ba5f659af"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a316cb048b05015b35850d8ba5f659af"} device-1 | {"level":"info","message":"GET /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d? 200 37ms","method":"GET","requestID":"a316cb048b05015b35850d8ba5f659af","responseTime":37,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"1e43d625ba1c4abb3d926a8d67b16b5f","responseTime":7,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.826649,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e43d625ba1c4abb3d926a8d67b16b5f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.620237,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4b95400-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.515165,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4b9a220-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:07.957861915Z"}]},"request_id":"bc01c74e-4191-4869-8a42-d565ec962184","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866650.9579327} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4b95400-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:08.074957935Z"}]},"request_id":"95a17056-f415-488a-9848-d54ba9042ccd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866650.9593518} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4b9a220-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8b059e04-2c83-4acb-834c-2e8593240d4e? 200 22ms","method":"GET","requestID":"d4b95400-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d? 200 21ms","method":"GET","requestID":"d4b9a220-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.088707,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4e40d80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760239,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4e45ba0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.718741,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"756d2f54-f5ff-4831-bb22-7e6e48fefdd9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.2428977} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4e4a9c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:08.074957935Z"}]},"request_id":"8e5a936d-59ed-4756-9422-7ed5bd67fe54","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.2444205} authorization-1 | {"level":"info","message":"POST /relations/query 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4e45ba0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:07.957861915Z"}]},"request_id":"b985cbde-dbbb-470e-8d84-115b36c2ce54","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.2523003} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling 200 28ms","method":"POST","requestID":"d4e4a9c0-0158-11ef-926d-7f5be4425d00","responseTime":28,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4e40d80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2347682-06e8-4ba9-85ac-9a268a357d2f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.2676508} device-1 | {"level":"info","message":"GET /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d? 200 40ms","method":"GET","requestID":"d4e45ba0-0158-11ef-926d-7f5be4425d00","responseTime":40,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.591683,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8b059e04-2c83-4acb-834c-2e8593240d4e? 200 43ms","method":"GET","requestID":"d4e40d80-0158-11ef-926d-7f5be4425d00","responseTime":43,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4e9d9e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling 200 16ms","method":"POST","requestID":"d4e9d9e0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b6375d9-9da5-408d-90ca-9edac52cb40d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.2803652} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.730496,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4ebd5b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling 200 15ms","method":"POST","requestID":"d4ebd5b0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"07876b6c-3d4d-4a6a-b422-cdf92d1b4c84","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.302054} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.177711,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4eee2f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling 200 14ms","method":"POST","requestID":"d4eee2f0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"1cb9a00c-9655-466b-b0f2-e1a8a3d9b6d3"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"d6690806-5dff-4dd8-8799-c799c23ee893"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"422140c2-8eed-4420-8ccb-7847bce67db6"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"58be8f52-b816-4369-8f88-e76faa9943b0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.3292892} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a210c97-6098-4ea9-9d67-c61046fab2fa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.329547} authorization-1 | {"level":"info","message":"POST /relations/update 200 101ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e43d625ba1c4abb3d926a8d67b16b5f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":101}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.959859,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866650,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MH0.OMZUkzgqkH-R348vjPygVGGH9rccn6Mxu_oo8KE9F1k"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4f328b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.676","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1e43d625ba1c4abb3d926a8d67b16b5f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 649ms","method":"POST","requestID":"1e43d625ba1c4abb3d926a8d67b16b5f","responseTime":649,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MX0.1nmcLJ9HOk6ImHxuu5tUNhqLu_9LKj_JTJcmfYRKaKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"ca41b6c3041272660ed530ad84c0bf39","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.961749,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866651,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MX0.1nmcLJ9HOk6ImHxuu5tUNhqLu_9LKj_JTJcmfYRKaKM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca41b6c3041272660ed530ad84c0bf39"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:07.957861915Z"}]},"request_id":"06172065-c0f8-47ed-9f32-f7b97f76ae23","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.4066796} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca41b6c3041272660ed530ad84c0bf39"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8b059e04-2c83-4acb-834c-2e8593240d4e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca41b6c3041272660ed530ad84c0bf39"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MX0.1nmcLJ9HOk6ImHxuu5tUNhqLu_9LKj_JTJcmfYRKaKM","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.632781,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866651,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1MX0.1nmcLJ9HOk6ImHxuu5tUNhqLu_9LKj_JTJcmfYRKaKM"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b1507fef8171daa372be7b877fa62ae2","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"GET /devices/8b059e04-2c83-4acb-834c-2e8593240d4e? 200 18ms","method":"GET","requestID":"ca41b6c3041272660ed530ad84c0bf39","responseTime":18,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e?"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b1507fef8171daa372be7b877fa62ae2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:08.074957935Z"}]},"request_id":"ef18613e-ccbc-4454-b091-950b3016b3e3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.426818} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b1507fef8171daa372be7b877fa62ae2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b1507fef8171daa372be7b877fa62ae2"} device-1 | {"level":"info","message":"GET /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d? 200 13ms","method":"GET","requestID":"b1507fef8171daa372be7b877fa62ae2","responseTime":13,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7a5e2b14-de9d-4530-8ead-ca1a46162b03","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.5247757} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b341e74b-84e8-4bdd-b698-59343b880518","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.5251865} authorization-1 | {"level":"info","message":"POST /relations/update 200 161ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4f328b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":161}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 340ms","method":"POST","requestID":"d4f328b0-0158-11ef-926d-7f5be4425d00","responseTime":340,"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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"61ad5396-b731-4d29-9118-8b010451ac3f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.8730104} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.152259,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d54603a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling 200 14ms","method":"POST","requestID":"d54603a0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"70628c12-385d-4936-b534-7285153650ef","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866651.8911262} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.58627,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d548c2c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling 200 15ms","method":"POST","requestID":"d548c2c0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c73f4739-240b-4740-8f36-5499b7c1bc9d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f4837e0ec017cea356cb10cb17613d24","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"c73f4739-240b-4740-8f36-5499b7c1bc9d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 13ms","method":"POST","requestID":"f4837e0ec017cea356cb10cb17613d24","responseTime":13,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +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.019","http_referrer":"","http_user_agent":"node-fetch","requestID":"f4837e0ec017cea356cb10cb17613d24"} device-1 | {"data":{"peerconnection":"c73f4739-240b-4740-8f36-5499b7c1bc9d","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/c73f4739-240b-4740-8f36-5499b7c1bc9d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c73f4739-240b-4740-8f36-5499b7c1bc9d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"29c6a7c444802624bd56a7f87aa3a7d4","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc73f4739-240b-4740-8f36-5499b7c1bc9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ba32d4b-f0c3-421f-bed0-12050546f24f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.1053238} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.171417,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5699130-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d 200 13ms","method":"GET","requestID":"d5699130-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 39ms","method":"POST","requestID":"29c6a7c444802624bd56a7f87aa3a7d4","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +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":"29c6a7c444802624bd56a7f87aa3a7d4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"83d53667-b7f8-4352-aca1-93226b0a3b34","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.1374075} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.100957,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d56ec150-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling 200 9ms","method":"POST","requestID":"d56ec150-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5444087f-d99c-4664-a136-29a30f5ac7a7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.1492937} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.450276,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5706f00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling 200 11ms","method":"POST","requestID":"d5706f00-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"c9c30587d9561a5289d8c1e850cc9592","responseTime":8,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.678839,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866652,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c9c30587d9561a5289d8c1e850cc9592"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c9c30587d9561a5289d8c1e850cc9592"} experiment-1 | {"level":"info","message":"GET /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec 200 22ms","method":"GET","requestID":"c9c30587d9561a5289d8c1e850cc9592","responseTime":22,"status":200,"url":"/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"81b6c52d01f985036d6451f726cc6b27","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.345928,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866652,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"81b6c52d01f985036d6451f726cc6b27"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.020203,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866652,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5802670-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c73f4739-240b-4740-8f36-5499b7c1bc9d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"caff7ffe0b655fc6ca57339c668e296d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d6115181bc27296a285429302148dc20","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc73f4739-240b-4740-8f36-5499b7c1bc9d': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc73f4739-240b-4740-8f36-5499b7c1bc9d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"ef2bccc3-9a98-4a44-ae58-654e15195af5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.2988944} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"90d240aa-91ee-4796-9d2c-bbc298992654","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.2994068} device-1 | {"data":{"peerconnection":"c73f4739-240b-4740-8f36-5499b7c1bc9d","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5802670-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":34}} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d 204 71ms","method":"DELETE","requestID":"d5802670-0158-11ef-926d-7f5be4425d00","responseTime":71,"status":204,"url":"/peerconnections/c73f4739-240b-4740-8f36-5499b7c1bc9d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.371553,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b059e04-2c83-4acb-834c-2e8593240d4e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0cfaa6d-8512-42bc-a123-ceec0c1ba944","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.357874} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58fb6d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling 200 23ms","method":"POST","requestID":"d58fb6d0-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/8b059e04-2c83-4acb-834c-2e8593240d4e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"34a7b8e9-4bbe-4493-94d6-2dd0ffe83729","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.3789344} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7ea3269-ee5e-40a8-b37c-2af23c316baa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.3797572} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"81b6c52d01f985036d6451f726cc6b27"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":36}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0beba26f-c801-4e44-a2c5-24b3fc119d2d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f846105c-109c-48f6-a3a7-52dde7924174","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.3877542} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.789047,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d593fc90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling 200 20ms","method":"POST","requestID":"d593fc90-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec 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":"81b6c52d01f985036d6451f726cc6b27"} experiment-1 | {"level":"info","message":"DELETE /experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec 204 240ms","method":"DELETE","requestID":"81b6c52d01f985036d6451f726cc6b27","responseTime":240,"status":204,"url":"/experiments/6b65471d-c8cd-4ebc-ad59-b7ca791ba4ec"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 185ms","method":"POST","requestID":"caff7ffe0b655fc6ca57339c668e296d","responseTime":185,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 183ms","method":"POST","requestID":"d6115181bc27296a285429302148dc20","responseTime":183,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +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":"caff7ffe0b655fc6ca57339c668e296d"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +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":"d6115181bc27296a285429302148dc20"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"2.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":"db826687ccde0337ca5f01b4b06697fe"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","request_time":"2.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":"94be58805c0f976f9f209b30646afae1"} authentication-1 | {"level":"info","message":"GET /auth 200 12ms","method":"GET","requestID":"ce1c3f456cc98936a90d3bd482894590","responseTime":12,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.8301,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866652,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce1c3f456cc98936a90d3bd482894590"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8b059e04-2c83-4acb-834c-2e8593240d4e' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0beba26f-c801-4e44-a2c5-24b3fc119d2d' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b579a623-178a-41e3-b0c5-be06dc7dadbf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5039968} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce1c3f456cc98936a90d3bd482894590"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7823f9aa-94e6-438d-b12d-b6ff30eb9101","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5092447} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce1c3f456cc98936a90d3bd482894590"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a26ff0e8-0ecc-4560-ac32-074ba2e36b0c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5191095} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c258ade6-b76d-4a5a-bf66-3a328d329cff","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5192575} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce1c3f456cc98936a90d3bd482894590"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.519093798Z"}]},"request_id":"8edd0033-8abd-4543-b5ff-78d9eb4d8267","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5240748} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce1c3f456cc98936a90d3bd482894590"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce1c3f456cc98936a90d3bd482894590"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"ce1c3f456cc98936a90d3bd482894590","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"02895c0a26418ac831a45be69dcb1900","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.244268,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866652,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Mn0.5i_P7ezREpSM0qrZKstW8NKyt3dwrK5iOyJTzK7dCPA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02895c0a26418ac831a45be69dcb1900"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ba3faeef-02df-42da-b30d-b6f6647f1ebc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5512545} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02895c0a26418ac831a45be69dcb1900"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9d029553-a1cb-41db-bfef-1dcc3232ff76","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5557437} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02895c0a26418ac831a45be69dcb1900"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"e817da44-368b-4816-b922-e62b37063938","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.568778} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9395f4c8-819c-413c-aae2-9e6767237d29","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5690114} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02895c0a26418ac831a45be69dcb1900"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"c1f6868e-4a9e-47a8-a6e2-3cf71cefe680","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866652.5743496} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02895c0a26418ac831a45be69dcb1900"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02895c0a26418ac831a45be69dcb1900"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"02895c0a26418ac831a45be69dcb1900","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1M30.r9F6_XXycApPEfzw3qysrrjsq39kKbdlZaRmYAhPqd4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"8b8fbface096b43226e21fb1d6eb3985","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761485,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866653,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1M30.r9F6_XXycApPEfzw3qysrrjsq39kKbdlZaRmYAhPqd4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b8fbface096b43226e21fb1d6eb3985"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"73a88323-9eaf-4520-9409-49ac9291c459","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866653.1909125} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b8fbface096b43226e21fb1d6eb3985"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c73c3ef-2a5c-4400-b1f4-27073b17fa97","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866653.2003806} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b8fbface096b43226e21fb1d6eb3985"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"e3cca739-184e-44ba-a2ef-e5809d90a2a9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866653.2182875} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b8fbface096b43226e21fb1d6eb3985"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7add565f-3570-47bc-8c40-d916bdf0c556 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.082","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8b8fbface096b43226e21fb1d6eb3985"} device-1 | {"level":"info","message":"PATCH /devices/7add565f-3570-47bc-8c40-d916bdf0c556 200 73ms","method":"PATCH","requestID":"8b8fbface096b43226e21fb1d6eb3985","responseTime":73,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1M30.r9F6_XXycApPEfzw3qysrrjsq39kKbdlZaRmYAhPqd4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"43e361e76c027dcde83ca510a0c91d47","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.337825,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866653,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1M30.r9F6_XXycApPEfzw3qysrrjsq39kKbdlZaRmYAhPqd4"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43e361e76c027dcde83ca510a0c91d47"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"43e361e76c027dcde83ca510a0c91d47"} device-1 | {"level":"info","message":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/websocket 200 25ms","method":"POST","requestID":"43e361e76c027dcde83ca510a0c91d47","responseTime":25,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0bf41bbc03b19a62a6c5febcb5b79fba","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/092fa595-0667-48f2-a43a-e52540beb49e/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":"0bf41bbc03b19a62a6c5febcb5b79fba"} device-1 | {"level":"info","message":"OPTIONS /devices/092fa595-0667-48f2-a43a-e52540beb49e/websocket 200 1ms","method":"OPTIONS","requestID":"0bf41bbc03b19a62a6c5febcb5b79fba","responseTime":1,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"917c720969932398096411f80b18c31c","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.098143,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"917c720969932398096411f80b18c31c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"917c720969932398096411f80b18c31c"} device-1 | {"level":"info","message":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/websocket 200 39ms","method":"POST","requestID":"917c720969932398096411f80b18c31c","responseTime":39,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"685b2607e1c3bb2c4145cdbcf5076408","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.189102,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"685b2607e1c3bb2c4145cdbcf5076408"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.519093798Z"}]},"request_id":"15cc6946-1e57-4c01-852a-722a241da0f4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.6791337} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"685b2607e1c3bb2c4145cdbcf5076408"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/092fa595-0667-48f2-a43a-e52540beb49e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"685b2607e1c3bb2c4145cdbcf5076408"} device-1 | {"level":"info","message":"GET /devices/092fa595-0667-48f2-a43a-e52540beb49e? 200 22ms","method":"GET","requestID":"685b2607e1c3bb2c4145cdbcf5076408","responseTime":22,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"3a7e3bdfbd6485493fb323016d303ec9","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.770214,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a7e3bdfbd6485493fb323016d303ec9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"bfba0d1d-eaec-4557-9ac1-6c6d152d3aa2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.7120054} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a7e3bdfbd6485493fb323016d303ec9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7add565f-3570-47bc-8c40-d916bdf0c556? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a7e3bdfbd6485493fb323016d303ec9"} device-1 | {"level":"info","message":"GET /devices/7add565f-3570-47bc-8c40-d916bdf0c556? 200 23ms","method":"GET","requestID":"3a7e3bdfbd6485493fb323016d303ec9","responseTime":23,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"c4f0b35bec4f6b2945348b83d78dca80","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.394036,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c4f0b35bec4f6b2945348b83d78dca80"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.199103,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7073ba0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.17425,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d707b0d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.519093798Z"}]},"request_id":"e4639653-6381-491b-a478-a24e35a1d0c3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.8260317} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7073ba0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"8246b019-f50b-43b7-90d5-846ce4b3e5c0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.8283296} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d707b0d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/092fa595-0667-48f2-a43a-e52540beb49e? 200 29ms","method":"GET","requestID":"d7073ba0-0158-11ef-926d-7f5be4425d00","responseTime":29,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7add565f-3570-47bc-8c40-d916bdf0c556? 200 28ms","method":"GET","requestID":"d707b0d0-0158-11ef-926d-7f5be4425d00","responseTime":28,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.304149,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71656d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.7581,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d716cc00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.687233,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98b746c5-e6a5-425e-9dcd-43e4a99e69c5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.9272115} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.519093798Z"}]},"request_id":"e05776fb-be9a-4a53-8831-ed160d5f1b0d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.9319184} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7174130-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71656d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"30930783-af59-426d-b74f-bccef7cf8308","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.9342928} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d716cc00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b1b5ad-8e9d-4602-b9dc-0328b77933f5#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b1b5ad-8e9d-4602-b9dc-0328b77933f5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"226da598-c2af-4224-8a93-17ab47d07241","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.9450562} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e9e6166f-59c4-43b4-9ab3-63f49b17c599","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.945464} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c4f0b35bec4f6b2945348b83d78dca80"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling 200 35ms","method":"POST","requestID":"d7174130-0158-11ef-926d-7f5be4425d00","responseTime":35,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/092fa595-0667-48f2-a43a-e52540beb49e? 200 43ms","method":"GET","requestID":"d71656d0-0158-11ef-926d-7f5be4425d00","responseTime":43,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7add565f-3570-47bc-8c40-d916bdf0c556? 200 42ms","method":"GET","requestID":"d716cc00-0158-11ef-926d-7f5be4425d00","responseTime":42,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0272770-bb82-4dd8-aabf-662ed1f37f43","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.967668} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.773842,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","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":"23/Apr/2024:10:04:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.246","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c4f0b35bec4f6b2945348b83d78dca80"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71e1f00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"level":"info","message":"POST /experiments? 201 237ms","method":"POST","requestID":"c4f0b35bec4f6b2945348b83d78dca80","responseTime":237,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6252b336-644c-4e8a-a97b-119160b8a142","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.97181} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.312801,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71ee250-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling 200 17ms","method":"POST","requestID":"d71e1f00-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"36d78a6cb6e8e6d7d98a7846a1499457","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling 200 14ms","method":"POST","requestID":"d71ee250-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.878058,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"36d78a6cb6e8e6d7d98a7846a1499457"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2a97642f-69fa-4f20-83db-da609b1ec899","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.9871297} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.313855,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7217a60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.519093798Z"}]},"request_id":"58beb88d-7d29-46d6-b1af-c874ec0ea56a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866654.9928079} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"36d78a6cb6e8e6d7d98a7846a1499457"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling 200 14ms","method":"POST","requestID":"d7217a60-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Building connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"1f8288bd-dad9-4382-9174-3c1569ec339b"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"854e25cc-2c0c-47d5-bff4-fefc8dffb3f6"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6696c50b-f749-42c9-ac1c-a58badd3d0d5"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} gateway-1 | {"time_local":"23/Apr/2024:10:04:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/092fa595-0667-48f2-a43a-e52540beb49e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"36d78a6cb6e8e6d7d98a7846a1499457"} device-1 | {"level":"info","message":"GET /devices/092fa595-0667-48f2-a43a-e52540beb49e? 200 20ms","method":"GET","requestID":"36d78a6cb6e8e6d7d98a7846a1499457","responseTime":20,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.807341,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:15Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NX0.IkBzjTrxDkOoM1V46yq_xEl_ky-i8DRCgFEF4l9d1aU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9ca913787a3407fc533741ee0117b0ac","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866654,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NH0.GQmR3T2t5vDL8j1L5uisl-ZmZLKSZhfrh3c4YZ3XCAQ"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7243980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.677759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866655,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1NX0.IkBzjTrxDkOoM1V46yq_xEl_ky-i8DRCgFEF4l9d1aU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ca913787a3407fc533741ee0117b0ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:12.568764609Z"}]},"request_id":"16f50a62-3755-4d86-9cd4-3eb7af7bafb1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866655.015209} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ca913787a3407fc533741ee0117b0ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"cfb3a4de-6f52-48b7-9a77-7599614c5c68","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866655.020224} gateway-1 | {"time_local":"23/Apr/2024:10:04:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7add565f-3570-47bc-8c40-d916bdf0c556? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9ca913787a3407fc533741ee0117b0ac"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"65814648-cd6e-4af5-a7d7-9785fbbc0feb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866655.0205948} device-1 | {"level":"info","message":"GET /devices/7add565f-3570-47bc-8c40-d916bdf0c556? 200 15ms","method":"GET","requestID":"9ca913787a3407fc533741ee0117b0ac","responseTime":15,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7243980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"d7243980-0158-11ef-926d-7f5be4425d00","responseTime":42,"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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a8bd1095-b824-4028-94dc-cdd8a6b4a163","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866655.0809548} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.604583,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d72fd240-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling 200 10ms","method":"POST","requestID":"d72fd240-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b912326-6d8f-4b60-9743-a2d34c3e97bf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866655.0937746} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.187381,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d731ce10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling 200 9ms","method":"POST","requestID":"d731ce10-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"e658cb50b63fd62605e94310e8db797d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"e658cb50b63fd62605e94310e8db797d","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +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.017","http_referrer":"","http_user_agent":"node-fetch","requestID":"e658cb50b63fd62605e94310e8db797d"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","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/0db47279-6015-49d5-83e7-138eac1597f7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"949dc9f2e2d6fcf610441f6ffbb11a27","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0db47279-6015-49d5-83e7-138eac1597f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"20af1c5e-8ba0-4fdc-bcd5-192af13e44d5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.1931767} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.312795,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7","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 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7d90a90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/0db47279-6015-49d5-83e7-138eac1597f7 200 15ms","method":"GET","requestID":"d7d90a90-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 48ms","method":"POST","requestID":"949dc9f2e2d6fcf610441f6ffbb11a27","responseTime":48,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +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":"949dc9f2e2d6fcf610441f6ffbb11a27"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4867c89a-2c2c-42fd-8c44-9f6ca912f462","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.2338567} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.880874,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7df4c20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling 200 17ms","method":"POST","requestID":"d7df4c20-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca286e62-c051-4c11-a382-d8880086d616","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.2545774} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.82255,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7e28070-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a16d9ae0206cae30cc841bbbd450113c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling 200 17ms","method":"POST","requestID":"d7e28070-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.190365,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866656,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a16d9ae0206cae30cc841bbbd450113c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a16d9ae0206cae30cc841bbbd450113c"} experiment-1 | {"level":"info","message":"GET /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5 200 21ms","method":"GET","requestID":"a16d9ae0206cae30cc841bbbd450113c","responseTime":21,"status":200,"url":"/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ee7397fd01f54fd192efa9e12f33176d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.125064,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866656,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee7397fd01f54fd192efa9e12f33176d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.245037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866656,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7edcb10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0db47279-6015-49d5-83e7-138eac1597f7': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0db47279-6015-49d5-83e7-138eac1597f7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"a365746e-6486-495a-bfa6-d32546742108","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.3556278} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a76dde06-83f7-4108-b0b0-8f6ea6794224","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.356081} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"603c174d44c02340573bff3c3a041a4b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7edcb10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8e524f1bfe95cfa1278d2ee6c899a6dc","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"0db47279-6015-49d5-83e7-138eac1597f7","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/0db47279-6015-49d5-83e7-138eac1597f7 204 68ms","method":"DELETE","requestID":"d7edcb10-0158-11ef-926d-7f5be4425d00","responseTime":68,"status":204,"url":"/peerconnections/0db47279-6015-49d5-83e7-138eac1597f7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7add565f-3570-47bc-8c40-d916bdf0c556","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"12c809f9-5cb6-4ea0-b54e-d0c0482ae3f5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.4269822} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.39948,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7fc9820-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling 200 18ms","method":"POST","requestID":"d7fc9820-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/7add565f-3570-47bc-8c40-d916bdf0c556/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b1b5ad-8e9d-4602-b9dc-0328b77933f5': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b1b5ad-8e9d-4602-b9dc-0328b77933f5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"536e370d-f936-402f-8b6a-29a91b10c1e5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.4419827} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d35107f9-d729-4a0c-ba0c-4bce36688031","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.442672} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee7397fd01f54fd192efa9e12f33176d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":30}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F092fa595-0667-48f2-a43a-e52540beb49e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27b27dcb-5c66-4f9f-a3dc-91c74890522c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.4508073} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.792439,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7fff380-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling 200 21ms","method":"POST","requestID":"d7fff380-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/092fa595-0667-48f2-a43a-e52540beb49e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5 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":"ee7397fd01f54fd192efa9e12f33176d"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"3.251","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cb288b94af583cd9dc9d24ade034b448"} experiment-1 | {"level":"info","message":"DELETE /experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5 204 224ms","method":"DELETE","requestID":"ee7397fd01f54fd192efa9e12f33176d","responseTime":224,"status":204,"url":"/experiments/17b1b5ad-8e9d-4602-b9dc-0328b77933f5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 163ms","method":"POST","requestID":"603c174d44c02340573bff3c3a041a4b","responseTime":163,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +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.170","http_referrer":"","http_user_agent":"node-fetch","requestID":"603c174d44c02340573bff3c3a041a4b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 163ms","method":"POST","requestID":"8e524f1bfe95cfa1278d2ee6c899a6dc","responseTime":163,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +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.171","http_referrer":"","http_user_agent":"node-fetch","requestID":"8e524f1bfe95cfa1278d2ee6c899a6dc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a24ebde022531a2463e804421edbb2c4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1955","request_time":"1.895","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f0338e1fa7dde9b914b309c7c53f71d9"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7add565f-3570-47bc-8c40-d916bdf0c556' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.916158,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866656,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a24ebde022531a2463e804421edbb2c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/092fa595-0667-48f2-a43a-e52540beb49e' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bff867d2-d119-4953-9745-ae69d7af2342","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.5530114} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a24ebde022531a2463e804421edbb2c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38a36c6e-5066-456d-84d8-6cdba061a035","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.5594566} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a24ebde022531a2463e804421edbb2c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ac201815-fa94-4e14-81ff-a984f8499715","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.5734348} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b70ea96-f851-486c-bb2b-302991ae1a23","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.5737514} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a24ebde022531a2463e804421edbb2c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"1ffa6abb-88c6-4259-bb28-430866448381","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.5818172} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a24ebde022531a2463e804421edbb2c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a24ebde022531a2463e804421edbb2c4"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"a24ebde022531a2463e804421edbb2c4","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e8fd58772a4fea74f304ec04b633a93","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.700915,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866656,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1Nn0.41XIOwXTSIuc10lJHBNxmBJyi5-8tETIhMi4Mf6090k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e8fd58772a4fea74f304ec04b633a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"aa99e1c6-46a3-43bd-ad09-931ecb54704f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.607575} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e8fd58772a4fea74f304ec04b633a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"225f4bb4-3a74-44da-b63a-abf12cdbf0fe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.6127486} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e8fd58772a4fea74f304ec04b633a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"82d566ef-4b08-449a-aa28-eb3f19b027ec","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.6232102} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ea8e844-52d7-453f-9b95-41de89f3b7e1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.623494} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e8fd58772a4fea74f304ec04b633a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.623195376Z"}]},"request_id":"288249ca-d09a-4eae-8e5b-3f151353cf25","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866656.6281655} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e8fd58772a4fea74f304ec04b633a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e8fd58772a4fea74f304ec04b633a93"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"3e8fd58772a4fea74f304ec04b633a93","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1N30.V208TJiL86lYTdHRjSCQwME1PTKjZhhzvVC8EHIWte0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a1a685119a198a20d3c3d6b26e7dc48a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.172024,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866657,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1N30.V208TJiL86lYTdHRjSCQwME1PTKjZhhzvVC8EHIWte0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1a685119a198a20d3c3d6b26e7dc48a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"caa5b058-0849-4021-8861-9aa57f15ce10","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866657.119211} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1a685119a198a20d3c3d6b26e7dc48a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"590d5453-2faa-4217-9c6b-c784fc5653c4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866657.1260915} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1a685119a198a20d3c3d6b26e7dc48a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"f1042c58-54b3-460a-aec0-1f4cdada4538","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866657.1509337} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1a685119a198a20d3c3d6b26e7dc48a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4309441d-31c7-431d-8824-d31e64981f9c HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a1a685119a198a20d3c3d6b26e7dc48a"} device-1 | {"level":"info","message":"PATCH /devices/4309441d-31c7-431d-8824-d31e64981f9c 200 50ms","method":"PATCH","requestID":"a1a685119a198a20d3c3d6b26e7dc48a","responseTime":50,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1N30.V208TJiL86lYTdHRjSCQwME1PTKjZhhzvVC8EHIWte0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"16ea4920dbedda684ce6894bcfbdd461","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.367123,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866657,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1N30.V208TJiL86lYTdHRjSCQwME1PTKjZhhzvVC8EHIWte0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"16ea4920dbedda684ce6894bcfbdd461"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.031","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"16ea4920dbedda684ce6894bcfbdd461"} device-1 | {"level":"info","message":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/websocket 200 25ms","method":"POST","requestID":"16ea4920dbedda684ce6894bcfbdd461","responseTime":25,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b5eba49aeb353aa4c0165983727caee1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/46974527-f490-4550-8967-05f10f94716a/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":"b5eba49aeb353aa4c0165983727caee1"} device-1 | {"level":"info","message":"OPTIONS /devices/46974527-f490-4550-8967-05f10f94716a/websocket 200 1ms","method":"OPTIONS","requestID":"b5eba49aeb353aa4c0165983727caee1","responseTime":1,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6ca9ca539665b40b5d044b8c44e0ef9f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.296133,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ca9ca539665b40b5d044b8c44e0ef9f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/46974527-f490-4550-8967-05f10f94716a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"6ca9ca539665b40b5d044b8c44e0ef9f"} device-1 | {"level":"info","message":"POST /devices/46974527-f490-4550-8967-05f10f94716a/websocket 200 39ms","method":"POST","requestID":"6ca9ca539665b40b5d044b8c44e0ef9f","responseTime":39,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/46974527-f490-4550-8967-05f10f94716a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"52cdcce52b7c2920686b3d2379daea37","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.074194,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"52cdcce52b7c2920686b3d2379daea37"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"c533888a-d7f0-4be6-a1cd-917a2de27cd7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.7318673} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"52cdcce52b7c2920686b3d2379daea37"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4309441d-31c7-431d-8824-d31e64981f9c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"52cdcce52b7c2920686b3d2379daea37"} device-1 | {"level":"info","message":"GET /devices/4309441d-31c7-431d-8824-d31e64981f9c? 200 21ms","method":"GET","requestID":"52cdcce52b7c2920686b3d2379daea37","responseTime":21,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bcb6d9fc237567ef90af4d8deda8cb81","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.387616,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bcb6d9fc237567ef90af4d8deda8cb81"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.623195376Z"}]},"request_id":"ab3fb6be-675a-4eee-b781-83fa89464d4e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.7621696} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bcb6d9fc237567ef90af4d8deda8cb81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46974527-f490-4550-8967-05f10f94716a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bcb6d9fc237567ef90af4d8deda8cb81"} device-1 | {"level":"info","message":"GET /devices/46974527-f490-4550-8967-05f10f94716a? 200 21ms","method":"GET","requestID":"bcb6d9fc237567ef90af4d8deda8cb81","responseTime":21,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ca7c7d95acb0da4daccf99dc964433e2","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.523572,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca7c7d95acb0da4daccf99dc964433e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.180486,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d96fd730-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.263729,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d96ffe40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"b46198b6-feb8-46be-bacf-9cedfbf10f21","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.861994} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d96fd730-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.623195376Z"}]},"request_id":"d0f55791-c265-445e-b439-a277cc6082de","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.8641288} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d96ffe40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4309441d-31c7-431d-8824-d31e64981f9c? 200 19ms","method":"GET","requestID":"d96fd730-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/46974527-f490-4550-8967-05f10f94716a? 200 18ms","method":"GET","requestID":"d96ffe40-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.97345,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d97ea440-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.190953,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d97ecb50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"1f471e4e-956a-430e-b3e0-43798c730ee5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.9627352} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d97ea440-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4309441d-31c7-431d-8824-d31e64981f9c? 200 23ms","method":"GET","requestID":"d97ea440-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.623195376Z"}]},"request_id":"eb242f19-5078-4ff3-baef-b46faa2cbb15","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.968674} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1fd40055-f936-464c-80d3-07065f94a1dd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.968773} authorization-1 | {"level":"info","message":"POST /relations/query 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d97ecb50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":7.184267,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d97f1970-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F83c3eaff-b0ae-4678-b565-b149b373aa0b#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F83c3eaff-b0ae-4678-b565-b149b373aa0b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"e54c88fa-8510-4df8-97a4-0a49733f7417","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.9712627} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92a3b520-cd17-4e00-b19f-bd27cb04d193","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.9773753} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca7c7d95acb0da4daccf99dc964433e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"GET /devices/46974527-f490-4550-8967-05f10f94716a? 200 31ms","method":"GET","requestID":"d97ecb50-0158-11ef-926d-7f5be4425d00","responseTime":31,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling 200 30ms","method":"POST","requestID":"d97f1970-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00aabbf5-8c1b-40b7-b828-8daa92697afe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.9880993} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.351093,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","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 called"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d983fb70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:18Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0cbb991d-8c20-45e5-834f-96fead288a89","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866658.9951959} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.268669,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:18Z"} device-1 | {"level":"info","message":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling 200 13ms","method":"POST","requestID":"d983fb70-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d984e5d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46974527-f490-4550-8967-05f10f94716a/signaling 200 13ms","method":"POST","requestID":"d984e5d0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:19Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca7c7d95acb0da4daccf99dc964433e2"} experiment-1 | {"level":"info","message":"POST /experiments? 201 229ms","method":"POST","requestID":"ca7c7d95acb0da4daccf99dc964433e2","responseTime":229,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"744f8bf4-ead4-45fb-a65e-8bd11d01a31d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.0127647} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.549391,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OX0.-4u54k61u5CvK6X7ARfWPx-X4rvEsfnIP_uUlZ8tXoA","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9877de0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cf84c5f98418eccb6c8998d8f2eb037a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46974527-f490-4550-8967-05f10f94716a/signaling 200 13ms","method":"POST","requestID":"d9877de0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.935582,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:19Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"521e90dd-0c92-43a0-924a-7320278d841b"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"ce8de563-146c-4d4d-ab9d-98233df9502c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"c17ef501-7e3f-46c0-8b1c-66c7f93c506a"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/46974527-f490-4550-8967-05f10f94716a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866659,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OX0.-4u54k61u5CvK6X7ARfWPx-X4rvEsfnIP_uUlZ8tXoA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf84c5f98418eccb6c8998d8f2eb037a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.573422675Z"}]},"request_id":"46c9f485-54c3-490c-8701-98b4deb8c7e0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.025277} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf84c5f98418eccb6c8998d8f2eb037a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.722753,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866658,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OH0.RkhfUMBrm6DrFGeON_g6KVoHRl84PKnSdv5ovcwLY6s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d98a3d00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4309441d-31c7-431d-8824-d31e64981f9c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf84c5f98418eccb6c8998d8f2eb037a"} device-1 | {"level":"info","message":"GET /devices/4309441d-31c7-431d-8824-d31e64981f9c? 200 14ms","method":"GET","requestID":"cf84c5f98418eccb6c8998d8f2eb037a","responseTime":14,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OX0.-4u54k61u5CvK6X7ARfWPx-X4rvEsfnIP_uUlZ8tXoA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"06c573d75c6a27b04cd8303f3860c1c1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a8aef398-ec9d-41eb-a26a-8582f987e834","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.0383577} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f2b5d9bf-75f2-49d2-8e54-19a92dff40ea","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.038655} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714799,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d98a3d00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866659,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY1OX0.-4u54k61u5CvK6X7ARfWPx-X4rvEsfnIP_uUlZ8tXoA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06c573d75c6a27b04cd8303f3860c1c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:16.623195376Z"}]},"request_id":"2954c3ab-ac2c-4681-bda2-bd95ce6ae715","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.0458603} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06c573d75c6a27b04cd8303f3860c1c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"d98a3d00-0158-11ef-926d-7f5be4425d00","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46974527-f490-4550-8967-05f10f94716a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"06c573d75c6a27b04cd8303f3860c1c1"} device-1 | {"level":"info","message":"GET /devices/46974527-f490-4550-8967-05f10f94716a? 200 38ms","method":"GET","requestID":"06c573d75c6a27b04cd8303f3860c1c1","responseTime":38,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"577c480c-d3db-42f5-baca-b9979a5876d5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.1192458} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.562007,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d997f8a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling 200 11ms","method":"POST","requestID":"d997f8a0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f19ea2d6-4f6f-4b3d-8c32-b637d79788c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866659.1316605} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.988233,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d999f470-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46974527-f490-4550-8967-05f10f94716a/signaling 200 9ms","method":"POST","requestID":"d999f470-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/signaling"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0d9ddcf821ebb157c82b192c8ec5fccb","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/46974527-f490-4550-8967-05f10f94716a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 18ms","method":"POST","requestID":"0d9ddcf821ebb157c82b192c8ec5fccb","responseTime":18,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.025","http_referrer":"","http_user_agent":"node-fetch","requestID":"0d9ddcf821ebb157c82b192c8ec5fccb"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","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/8a7586fd-965d-4fbf-a784-93ec8dc6a71f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"916b911070e41f934f6bb45f99fae606","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46974527-f490-4550-8967-05f10f94716a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8a7586fd-965d-4fbf-a784-93ec8dc6a71f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"039f629b-6e46-4b71-bd5d-3704e9d95773","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.230835} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.50799,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f","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 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da4130f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f 200 17ms","method":"GET","requestID":"da4130f0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 81ms","method":"POST","requestID":"916b911070e41f934f6bb45f99fae606","responseTime":81,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.087","http_referrer":"","http_user_agent":"node-fetch","requestID":"916b911070e41f934f6bb45f99fae606"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b87ad9e10b416fdc90d832fee30b8e9d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"79d23a4b-e607-4577-b1e6-79a02b5b6b46","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.3025684} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.568928,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da4bdf50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.373434,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866660,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b87ad9e10b416fdc90d832fee30b8e9d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling 200 18ms","method":"POST","requestID":"da4bdf50-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b87ad9e10b416fdc90d832fee30b8e9d"} experiment-1 | {"level":"info","message":"GET /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b 200 31ms","method":"GET","requestID":"b87ad9e10b416fdc90d832fee30b8e9d","responseTime":31,"status":200,"url":"/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b43c5f36-cb4f-47a3-8a67-219b3964570e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.3266716} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.312663,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da4fd6f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"34d8e6e18334b036f5adf47c9484dbaf","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46974527-f490-4550-8967-05f10f94716a/signaling 200 18ms","method":"POST","requestID":"da4fd6f0-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.340213,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866660,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d8e6e18334b036f5adf47c9484dbaf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.064126,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866660,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da55a350-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8a7586fd-965d-4fbf-a784-93ec8dc6a71f': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8a7586fd-965d-4fbf-a784-93ec8dc6a71f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"8b402f1a-cf23-4b1e-a2d6-3d2514d6a44a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.382596} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"118a9da6998737efc0a792b112735383","responseTime":2,"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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15767da2-5876-48a3-85e4-eb4a83d04408","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.3842816} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da55a350-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ac72214ae1d3fb5cb4154a157c59e938","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46974527-f490-4550-8967-05f10f94716a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46974527-f490-4550-8967-05f10f94716a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"8a7586fd-965d-4fbf-a784-93ec8dc6a71f","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f 204 62ms","method":"DELETE","requestID":"da55a350-0158-11ef-926d-7f5be4425d00","responseTime":62,"status":204,"url":"/peerconnections/8a7586fd-965d-4fbf-a784-93ec8dc6a71f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4309441d-31c7-431d-8824-d31e64981f9c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f182372-a0dd-46a9-adb6-fb07afae8e39","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.4516082} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.455738,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da6337e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling 200 13ms","method":"POST","requestID":"da6337e0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/4309441d-31c7-431d-8824-d31e64981f9c/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F83c3eaff-b0ae-4678-b565-b149b373aa0b': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F83c3eaff-b0ae-4678-b565-b149b373aa0b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"0539a53d-bb29-49eb-afc1-5bb290c93544","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.460798} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cc044523-a51e-4bbc-bc2f-a0b20d1f9bdc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.4610574} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d8e6e18334b036f5adf47c9484dbaf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46974527-f490-4550-8967-05f10f94716a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3a0a877a-581a-4985-b1a1-151487793130","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.4691093} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.043428,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46974527-f490-4550-8967-05f10f94716a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da6581d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46974527-f490-4550-8967-05f10f94716a/signaling 200 17ms","method":"POST","requestID":"da6581d0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/46974527-f490-4550-8967-05f10f94716a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"} gateway-1 | {"time_local":"23/Apr/2024:10:04:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.202","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"34d8e6e18334b036f5adf47c9484dbaf"} experiment-1 | {"level":"info","message":"DELETE /experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b 204 196ms","method":"DELETE","requestID":"34d8e6e18334b036f5adf47c9484dbaf","responseTime":196,"status":204,"url":"/experiments/83c3eaff-b0ae-4678-b565-b149b373aa0b"} gateway-1 | {"time_local":"23/Apr/2024:10:04:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"3.342","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"736e212229feedf2f16baecaaa20ec64"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"118a9da6998737efc0a792b112735383","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"118a9da6998737efc0a792b112735383"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"ac72214ae1d3fb5cb4154a157c59e938","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"ac72214ae1d3fb5cb4154a157c59e938"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a29aeab77d88ef99809d0f68241ff937","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4309441d-31c7-431d-8824-d31e64981f9c' closed"} gateway-1 | {"time_local":"23/Apr/2024:10:04:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1955","request_time":"1.850","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"efb2dc0e2166a292b57e78c874396708"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.996122,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866660,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a29aeab77d88ef99809d0f68241ff937"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/46974527-f490-4550-8967-05f10f94716a' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"54d7236f-d6c0-4c50-86ea-a67e3e608fe7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.565849} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a29aeab77d88ef99809d0f68241ff937"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bce5aaf5-302b-455a-b7ce-0f0e1ef3e45b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.5718594} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a29aeab77d88ef99809d0f68241ff937"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ceee1e1d-40fc-44ee-bb71-3c796fe7e035","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.5817785} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"707fa9c9-f53e-4c50-8c9b-fde008c6d49a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.5818923} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a29aeab77d88ef99809d0f68241ff937"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"120b0118-72df-42b0-993b-a6852ffe9b5f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.5867577} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a29aeab77d88ef99809d0f68241ff937"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a29aeab77d88ef99809d0f68241ff937"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"a29aeab77d88ef99809d0f68241ff937","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"44546207907e894191226472e3d50941","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.891368,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866660,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MH0.Y37ODv83I4bVwKUdWVFKFPWYOqGVlHhxtoESVRN34aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44546207907e894191226472e3d50941"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d1534975-f3e5-4f47-9ae3-1f9a865a2f65","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.6149917} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44546207907e894191226472e3d50941"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e7fc15b-17be-453d-9254-eaf4e87590e1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.6216702} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44546207907e894191226472e3d50941"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"d4b6d211-e900-4306-8784-d64c63513553","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.638761} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0da6238-519b-4686-a5af-44bc8b5792df","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.6389258} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44546207907e894191226472e3d50941"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"5483c019-0184-470d-b34a-dbce251862b6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866660.6431022} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44546207907e894191226472e3d50941"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"44546207907e894191226472e3d50941","responseTime":49,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"44546207907e894191226472e3d50941"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"92a304d7cf619a2e651aaa29e2f0d160","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6acc2b0c0337228aa3f3f52e76f74f5c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.894051,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.717848,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"92a304d7cf619a2e651aaa29e2f0d160"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6acc2b0c0337228aa3f3f52e76f74f5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"0a9f34c4-f738-41a4-a33e-8d5a3139b36e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.133161} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"92a304d7cf619a2e651aaa29e2f0d160"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"007a0cd3-e82b-4524-9da5-f13989ea7460","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.1339388} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6acc2b0c0337228aa3f3f52e76f74f5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db606e9d-4db6-463f-9693-11b750526357","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.1404176} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"92a304d7cf619a2e651aaa29e2f0d160"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7856f634-575b-4849-9f69-9a8f0b17ed15","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.1432939} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6acc2b0c0337228aa3f3f52e76f74f5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"cb72f6fe-4328-4298-9ded-7533d93f6147","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.1473756} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6acc2b0c0337228aa3f3f52e76f74f5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6acc2b0c0337228aa3f3f52e76f74f5c"} device-1 | {"level":"info","message":"PATCH /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02 200 34ms","method":"PATCH","requestID":"6acc2b0c0337228aa3f3f52e76f74f5c","responseTime":34,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d5310dbff6a60d4c78ba72da449eb534","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.934851,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5310dbff6a60d4c78ba72da449eb534"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"694573df-cbf5-4924-be78-860d8c091f9a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.167274} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"92a304d7cf619a2e651aaa29e2f0d160"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/694d60fd-3a76-42e0-9d86-2720608e1e62 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.064","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"92a304d7cf619a2e651aaa29e2f0d160"} device-1 | {"level":"info","message":"PATCH /devices/694d60fd-3a76-42e0-9d86-2720608e1e62 200 55ms","method":"PATCH","requestID":"92a304d7cf619a2e651aaa29e2f0d160","responseTime":55,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d5310dbff6a60d4c78ba72da449eb534"} device-1 | {"level":"info","message":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/websocket 200 21ms","method":"POST","requestID":"d5310dbff6a60d4c78ba72da449eb534","responseTime":21,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/websocket"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c135e6cceda827639a43c3afe81722cd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669261,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c135e6cceda827639a43c3afe81722cd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c135e6cceda827639a43c3afe81722cd"} device-1 | {"level":"info","message":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/websocket 200 22ms","method":"POST","requestID":"c135e6cceda827639a43c3afe81722cd","responseTime":22,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8b05f39b11f7bf555fa5f459bbf1f6a8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.812131,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b05f39b11f7bf555fa5f459bbf1f6a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"2e3f5de1-a7ac-4aad-8814-98a02942dee2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.226182} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b05f39b11f7bf555fa5f459bbf1f6a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/694d60fd-3a76-42e0-9d86-2720608e1e62? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8b05f39b11f7bf555fa5f459bbf1f6a8"} device-1 | {"level":"info","message":"GET /devices/694d60fd-3a76-42e0-9d86-2720608e1e62? 200 14ms","method":"GET","requestID":"8b05f39b11f7bf555fa5f459bbf1f6a8","responseTime":14,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f9df4f080a31eb8455651b440a2f57b8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640382,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9df4f080a31eb8455651b440a2f57b8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"b81ccfea-6f89-421a-80fb-05fa041ee680","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.2465036} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9df4f080a31eb8455651b440a2f57b8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f9df4f080a31eb8455651b440a2f57b8"} device-1 | {"level":"info","message":"GET /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02? 200 14ms","method":"GET","requestID":"f9df4f080a31eb8455651b440a2f57b8","responseTime":14,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0aea1d1a1343703bbe3691f7ef09faed","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.085194,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0aea1d1a1343703bbe3691f7ef09faed"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.766007,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dae86d70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.168314,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dae8bb90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"ad252ef3-518c-40c7-8d07-cca87e075938","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.3305259} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dae86d70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"6f7aae56-4831-40cd-9f79-00036b161f3a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.3326654} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dae8bb90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/694d60fd-3a76-42e0-9d86-2720608e1e62? 200 21ms","method":"GET","requestID":"dae86d70-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02? 200 19ms","method":"GET","requestID":"dae8bb90-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.849716,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"daf31bd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.05829,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"daf369f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.07752,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"42270bcc-d2d1-4c83-af49-0ca269cf86c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.402501} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"daf3b810-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"93c45ec2-f3f1-4e98-890a-b6aed041fc0c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4073265} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling 200 20ms","method":"POST","requestID":"daf3b810-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"daf31bd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"4ad9ee47-7fc8-45fb-b8eb-2f5406ba3dda","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.413241} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"daf369f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc550571d-c8f7-41cf-be83-358e700e6e79#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc550571d-c8f7-41cf-be83-358e700e6e79","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ba67c9c1-7bce-484f-830d-0d3a693d71b4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4201462} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ca57eef1-0ac4-4ec3-a776-78f61c436d3e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.42041} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/694d60fd-3a76-42e0-9d86-2720608e1e62? 200 35ms","method":"GET","requestID":"daf31bd0-0158-11ef-926d-7f5be4425d00","responseTime":35,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0aea1d1a1343703bbe3691f7ef09faed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} device-1 | {"level":"info","message":"GET /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02? 200 35ms","method":"GET","requestID":"daf369f0-0158-11ef-926d-7f5be4425d00","responseTime":35,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce6b9e83-80ad-4547-bb21-bf34b892d3a4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4269512} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.029286,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"daf7afb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling 200 17ms","method":"POST","requestID":"daf7afb0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0aea1d1a1343703bbe3691f7ef09faed"} experiment-1 | {"level":"info","message":"POST /experiments? 201 182ms","method":"POST","requestID":"0aea1d1a1343703bbe3691f7ef09faed","responseTime":182,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30c09392-9744-4fdb-9440-2751cd39b445","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4432552} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.119915,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dafa6ed0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"485873967a6e9a509529be632ebbbe17","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling 200 17ms","method":"POST","requestID":"dafa6ed0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.989334,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"485873967a6e9a509529be632ebbbe17"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"62352872-37f4-4a99-9534-c4a867d56c4f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4633389} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.124343,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dafd7c10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.581766638Z"}]},"request_id":"33abca1e-1055-4a7e-9e5a-de557665fd01","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4647818} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"485873967a6e9a509529be632ebbbe17"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling 200 17ms","method":"POST","requestID":"dafd7c10-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/694d60fd-3a76-42e0-9d86-2720608e1e62? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"485873967a6e9a509529be632ebbbe17"} device-1 | {"level":"info","message":"GET /devices/694d60fd-3a76-42e0-9d86-2720608e1e62? 200 24ms","method":"GET","requestID":"485873967a6e9a509529be632ebbbe17","responseTime":24,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"89071a18-5fee-4c8d-983f-14767582d867"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"92497cf5-f7e1-4390-bdcb-e99b5dbe37de"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"60a14390-4621-41e5-bc77-d26915b3dc61"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6845f4254fdf5910e6b55fcc4e3f6730","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.342268,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db00b060-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.929251,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6845f4254fdf5910e6b55fcc4e3f6730"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:20.638745387Z"}]},"request_id":"7c58bf6b-6e9c-44e9-9a0b-9a89cc6e9c56","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.491883} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02? 200 17ms","method":"GET","requestID":"6845f4254fdf5910e6b55fcc4e3f6730","responseTime":17,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6845f4254fdf5910e6b55fcc4e3f6730"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6845f4254fdf5910e6b55fcc4e3f6730"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"80cee6e6-1ec1-4b86-9fad-4a24f69d1d1a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4990861} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"b5d45d85-3367-4c06-baa0-72f2ff23ed19","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.4995003} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db00b060-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"db00b060-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7cef1987-d32a-4b0a-bf88-6676f2990625","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.5647616} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.260563,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","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":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fbbe2e2c2694c4206082a91bf6ddfb47","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db0d3380-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"fbbe2e2c2694c4206082a91bf6ddfb47","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +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":"fbbe2e2c2694c4206082a91bf6ddfb47"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling 200 18ms","method":"POST","requestID":"db0d3380-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cbd8b273-1d3b-40cd-9a69-d60c0f494f22","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.585013} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.321541,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db1040c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling 200 15ms","method":"POST","requestID":"db1040c0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","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/deeca914-6075-4e6f-9d1d-8286494c0816' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"504508fd6f40a341169e0ccdd7e2d3e2","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdeeca914-6075-4e6f-9d1d-8286494c0816","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b37eb394-0c4a-4083-9279-3282b955f5ef","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.6191525} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.171807,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db1570e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816 200 10ms","method":"GET","requestID":"db1570e0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"504508fd6f40a341169e0ccdd7e2d3e2","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +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":"504508fd6f40a341169e0ccdd7e2d3e2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc4351d2-6ad2-4e7d-b00f-df6b84169362","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.6474082} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.852232,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db19b6a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling 200 11ms","method":"POST","requestID":"db19b6a0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa24752e-c749-4d43-8be9-5f3b1779c8aa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.6614647} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.760823,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db1bd980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling 200 10ms","method":"POST","requestID":"db1bd980-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8a7a3f01351af123eccc7afe1a5a2254","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c550571d-c8f7-41cf-be83-358e700e6e79"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.247476,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a7a3f01351af123eccc7afe1a5a2254"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c550571d-c8f7-41cf-be83-358e700e6e79"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c550571d-c8f7-41cf-be83-358e700e6e79 HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a7a3f01351af123eccc7afe1a5a2254"} experiment-1 | {"level":"info","message":"GET /experiments/c550571d-c8f7-41cf-be83-358e700e6e79 200 20ms","method":"GET","requestID":"8a7a3f01351af123eccc7afe1a5a2254","responseTime":20,"status":200,"url":"/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f56fcc02a96a4897df0c0fd5e6ef09a9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c550571d-c8f7-41cf-be83-358e700e6e79"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.231441,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f56fcc02a96a4897df0c0fd5e6ef09a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.282552,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db2af4b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdeeca914-6075-4e6f-9d1d-8286494c0816': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdeeca914-6075-4e6f-9d1d-8286494c0816","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"a7cc690b-5271-4320-85fe-565617375758","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.7869847} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2866c43961f97800b0df983cbf4b7132","responseTime":2,"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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f0f19ba-cc1b-4636-8918-ca320c34d7fb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.7876277} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"6a71f85fdd0544e8b932893a9f940cd3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db2af4b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"deeca914-6075-4e6f-9d1d-8286494c0816","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816 204 63ms","method":"DELETE","requestID":"db2af4b0-0158-11ef-926d-7f5be4425d00","responseTime":63,"status":204,"url":"/peerconnections/deeca914-6075-4e6f-9d1d-8286494c0816"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F694d60fd-3a76-42e0-9d86-2720608e1e62","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eb46598a-f9f8-4a29-ad79-4715ef9afa0c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.8528204} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.328287,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db38b050-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling 200 16ms","method":"POST","requestID":"db38b050-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/694d60fd-3a76-42e0-9d86-2720608e1e62/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc550571d-c8f7-41cf-be83-358e700e6e79': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc550571d-c8f7-41cf-be83-358e700e6e79","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"923e065a-cf49-47ff-a435-2dc19f1c9e2e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.8657436} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0c5d5a80-6c4e-40df-a8a9-2e637c6f30be","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.8659532} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f56fcc02a96a4897df0c0fd5e6ef09a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b072b00-8ec9-4b88-9364-6d4118d04b02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"372c3862-1ced-41e2-941b-d650cfa5d214","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.8734512} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.755112,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db3be4a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling 200 15ms","method":"POST","requestID":"db3be4a0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c550571d-c8f7-41cf-be83-358e700e6e79"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c550571d-c8f7-41cf-be83-358e700e6e79 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.200","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f56fcc02a96a4897df0c0fd5e6ef09a9"} experiment-1 | {"level":"info","message":"DELETE /experiments/c550571d-c8f7-41cf-be83-358e700e6e79 204 195ms","method":"DELETE","requestID":"f56fcc02a96a4897df0c0fd5e6ef09a9","responseTime":195,"status":204,"url":"/experiments/c550571d-c8f7-41cf-be83-358e700e6e79"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1960","request_time":"0.753","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"08d81a2a4d07123aacdaf74a61fb239c"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1960","request_time":"0.731","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7a0759b2306a050cdd331fd6ecebbe98"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"2866c43961f97800b0df983cbf4b7132","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"2866c43961f97800b0df983cbf4b7132"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"6a71f85fdd0544e8b932893a9f940cd3","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +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.152","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a71f85fdd0544e8b932893a9f940cd3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"64b75a7d5e09ebba56a7fb9d0ee727b3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/694d60fd-3a76-42e0-9d86-2720608e1e62' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.993483,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64b75a7d5e09ebba56a7fb9d0ee727b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6b072b00-8ec9-4b88-9364-6d4118d04b02' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fab67dc78-1442-481b-89be-2996b41254d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b6b15162-809c-4217-ad6e-e94586ec56e7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.9631724} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64b75a7d5e09ebba56a7fb9d0ee727b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3718a80-17db-42f8-a66f-14279086d681","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.9702244} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64b75a7d5e09ebba56a7fb9d0ee727b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fab67dc78-1442-481b-89be-2996b41254d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"c7ef9aea-e418-4f91-b2a9-cbc685d7f83a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.9805346} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29d21e5b-4dac-4276-bd74-0b42f90ac79e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.980809} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64b75a7d5e09ebba56a7fb9d0ee727b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fab67dc78-1442-481b-89be-2996b41254d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fab67dc78-1442-481b-89be-2996b41254d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:21.980521429Z"}]},"request_id":"67df91fb-ee61-438f-86a9-da6dba3f708f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866661.9863775} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64b75a7d5e09ebba56a7fb9d0ee727b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"64b75a7d5e09ebba56a7fb9d0ee727b3"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"64b75a7d5e09ebba56a7fb9d0ee727b3","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7a4255fd912d912a1247381becb3f020","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.841199,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866661,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2MX0.bB0oLOhyguj1YtA9f7ZXpGvotafyztX7Qp39ebDJy_k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a4255fd912d912a1247381becb3f020"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ea36c86-7fb5-4df1-857f-2a9bb85a438c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"88ea37ad-1d12-4abe-be28-73dd7f912fc4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0151858} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a4255fd912d912a1247381becb3f020"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47d44b0f-ef46-45a3-bd1b-a143b12c85a6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.021216} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a4255fd912d912a1247381becb3f020"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ea36c86-7fb5-4df1-857f-2a9bb85a438c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"29fb17e3-f41e-49fa-914a-b569a9db6b77","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0312245} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"129e8863-3bd3-467f-a006-121d8f18838f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0315402} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a4255fd912d912a1247381becb3f020"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ea36c86-7fb5-4df1-857f-2a9bb85a438c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ea36c86-7fb5-4df1-857f-2a9bb85a438c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.031206681Z"}]},"request_id":"347d2213-a365-46e2-af67-80850df54fda","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0371218} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a4255fd912d912a1247381becb3f020"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a4255fd912d912a1247381becb3f020"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"7a4255fd912d912a1247381becb3f020","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2e64da84c389a88d269bddbee116f94d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.029897,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e64da84c389a88d269bddbee116f94d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf7de107-1040-49b7-a39b-9d0eb9167438","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c512efd5-9d23-4ec3-ac6a-d4af9637a497","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0689344} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e64da84c389a88d269bddbee116f94d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7a9a927-a5ca-440e-b2c2-2a7e46446669","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.075985} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e64da84c389a88d269bddbee116f94d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf7de107-1040-49b7-a39b-9d0eb9167438","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"02302ce8-aa3a-4580-b793-2f625d627aee","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0874572} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"05f99ab1-b6b0-4588-bf8c-20e03e3e2725","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0878253} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e64da84c389a88d269bddbee116f94d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf7de107-1040-49b7-a39b-9d0eb9167438","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf7de107-1040-49b7-a39b-9d0eb9167438","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.087421615Z"}]},"request_id":"72e1573e-ff18-4fb1-a93f-8877e5ac3d62","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.0940616} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e64da84c389a88d269bddbee116f94d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"2e64da84c389a88d269bddbee116f94d","responseTime":50,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e64da84c389a88d269bddbee116f94d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"80958ac122c3784e710970110653e62a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.035037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80958ac122c3784e710970110653e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6398e3f-bab4-4bfa-ba77-9a913bb72f08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1bbf883c-240b-496d-ace0-81628ba5bc7f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1259224} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80958ac122c3784e710970110653e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ffd366dc-5041-4ba0-8a67-eac8c834f7c7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1323926} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80958ac122c3784e710970110653e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6398e3f-bab4-4bfa-ba77-9a913bb72f08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"4518ce80-fd61-4223-9523-a2394b205788","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1427467} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99c49a8c-0d9e-4e16-a809-6e71918a94c7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.142972} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80958ac122c3784e710970110653e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6398e3f-bab4-4bfa-ba77-9a913bb72f08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6398e3f-bab4-4bfa-ba77-9a913bb72f08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.142730400Z"}]},"request_id":"0c699ad6-4351-4eaa-87cc-494f25985a6c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.148201} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80958ac122c3784e710970110653e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"80958ac122c3784e710970110653e62a"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"80958ac122c3784e710970110653e62a","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"91ba953f7ae1cb277f8f356788c40df9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.815262,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ba953f7ae1cb277f8f356788c40df9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc8e3b682-c576-4b29-bfb6-07715cdb7b9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"33e70c79-39f9-4c67-9836-fd1094514e2b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1765184} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ba953f7ae1cb277f8f356788c40df9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"85956b2f-c7bc-44bd-a11c-b22cb1032a4d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1828096} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ba953f7ae1cb277f8f356788c40df9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc8e3b682-c576-4b29-bfb6-07715cdb7b9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ec770fad-78bb-4811-a06a-8c8768774daa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1955273} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7289b6c1-133c-4575-b278-dc76409e96b5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.1958697} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ba953f7ae1cb277f8f356788c40df9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc8e3b682-c576-4b29-bfb6-07715cdb7b9c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc8e3b682-c576-4b29-bfb6-07715cdb7b9c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.195509641Z"}]},"request_id":"4ce4b26c-73aa-4418-b038-fc0748afbc9b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2092946} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ba953f7ae1cb277f8f356788c40df9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"91ba953f7ae1cb277f8f356788c40df9"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"91ba953f7ae1cb277f8f356788c40df9","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7a98030da1ea6a56c33be8baa54f397a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.708349,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a98030da1ea6a56c33be8baa54f397a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8435a6bf-2d78-46e5-bd55-2efa94e9c8c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"db8bfb81-6a97-4dd9-bba0-489741f7d097","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2324185} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a98030da1ea6a56c33be8baa54f397a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3218e7d2-c424-4358-a06b-e13e5d7139d6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.237316} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a98030da1ea6a56c33be8baa54f397a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8435a6bf-2d78-46e5-bd55-2efa94e9c8c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9a60af1d-e426-4270-9ee5-ea9a6d8ade6f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2475188} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6cce6d4-077c-4fcc-8866-2e72e2fd9c60","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2477489} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a98030da1ea6a56c33be8baa54f397a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8435a6bf-2d78-46e5-bd55-2efa94e9c8c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8435a6bf-2d78-46e5-bd55-2efa94e9c8c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.247501841Z"}]},"request_id":"860c4944-5fe9-40c0-ac66-538f5338e9b4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2522588} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a98030da1ea6a56c33be8baa54f397a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a98030da1ea6a56c33be8baa54f397a"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"7a98030da1ea6a56c33be8baa54f397a","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cde6741b02c8252f1425c1a37a8a6244","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.631222,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cde6741b02c8252f1425c1a37a8a6244"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17d09762-76a0-4d7a-ab7c-31d2da74c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"148fc748-5178-499c-b79e-bb5ddc399d38","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2769072} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cde6741b02c8252f1425c1a37a8a6244"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"657efd85-9fcd-4db4-8364-3b391119a894","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.282125} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cde6741b02c8252f1425c1a37a8a6244"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17d09762-76a0-4d7a-ab7c-31d2da74c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"8709e4c7-aa9e-46df-bc65-1eebf67d7a20","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2942438} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f38a0192-f7a4-4077-9ba4-d7a262539236","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.29441} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cde6741b02c8252f1425c1a37a8a6244"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17d09762-76a0-4d7a-ab7c-31d2da74c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17d09762-76a0-4d7a-ab7c-31d2da74c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.294224119Z"}]},"request_id":"5ec28061-80bb-4945-a13c-cc71dfa376ce","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.2991767} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cde6741b02c8252f1425c1a37a8a6244"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cde6741b02c8252f1425c1a37a8a6244"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"cde6741b02c8252f1425c1a37a8a6244","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ad697498f80fd123666b9ae838b0aeb9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.023495,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad697498f80fd123666b9ae838b0aeb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffee65fee-ad2d-4e98-b3f8-a74c17b7f86a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f7de1638-34ac-4691-a49f-0ed4540a605b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3271985} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad697498f80fd123666b9ae838b0aeb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c42d3ea3-ce51-44ed-952e-d243c6ccf3eb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3342729} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad697498f80fd123666b9ae838b0aeb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffee65fee-ad2d-4e98-b3f8-a74c17b7f86a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"fb1ecdb2-6e7b-4afd-b591-e78a815dac7a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3448057} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7cd1c01-2a64-41f2-8b7d-1d8ecfa30871","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3448598} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad697498f80fd123666b9ae838b0aeb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffee65fee-ad2d-4e98-b3f8-a74c17b7f86a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffee65fee-ad2d-4e98-b3f8-a74c17b7f86a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.344787626Z"}]},"request_id":"9bc71a6f-7fa3-44a0-ba8f-f82b91d83ee5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.351568} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad697498f80fd123666b9ae838b0aeb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ad697498f80fd123666b9ae838b0aeb9"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"ad697498f80fd123666b9ae838b0aeb9","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c11d69970810672539d19542e9f95c6c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.168504,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c11d69970810672539d19542e9f95c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89864643-302e-425a-9909-3b25ee6171eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b8777cd3-a522-4bf0-bf77-b3fcf172db5f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3820033} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c11d69970810672539d19542e9f95c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f6e54dee-aecc-4bad-b462-e03d39bdaab1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3863788} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c11d69970810672539d19542e9f95c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89864643-302e-425a-9909-3b25ee6171eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"f3ba30cb-74db-4fc9-b28b-5c72341cec20","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3991888} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b39a493c-5ddd-45de-92a1-3347222e698a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.3993597} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c11d69970810672539d19542e9f95c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89864643-302e-425a-9909-3b25ee6171eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89864643-302e-425a-9909-3b25ee6171eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.399175088Z"}]},"request_id":"55cb2b22-8989-4566-8270-4454abe94b6a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.4062753} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c11d69970810672539d19542e9f95c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +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":"c11d69970810672539d19542e9f95c6c"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"c11d69970810672539d19542e9f95c6c","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"86f9ffc5a5f4beabd314142887e7eabb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.114773,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86f9ffc5a5f4beabd314142887e7eabb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd45297fc-5d2c-4712-b0f7-b9e53779faf7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"226a9e34-fcd6-459b-ab1b-66c97163428f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.442469} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86f9ffc5a5f4beabd314142887e7eabb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"361b1db1-e9c6-4dba-9ae1-266cc0403a26","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.450185} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86f9ffc5a5f4beabd314142887e7eabb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd45297fc-5d2c-4712-b0f7-b9e53779faf7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"37cdabcd-93cb-489e-be7f-16b320b2986c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.4626014} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67cbd3fe-ac1f-46a2-b066-1a2476803107","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.463109} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86f9ffc5a5f4beabd314142887e7eabb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd45297fc-5d2c-4712-b0f7-b9e53779faf7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd45297fc-5d2c-4712-b0f7-b9e53779faf7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.462572270Z"}]},"request_id":"3b1c30d1-b65c-469c-8e4d-11598e090c42","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.4701562} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86f9ffc5a5f4beabd314142887e7eabb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"86f9ffc5a5f4beabd314142887e7eabb"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"86f9ffc5a5f4beabd314142887e7eabb","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"56bf5ae38ef5566da41d3a4cef6be2de","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.705211,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56bf5ae38ef5566da41d3a4cef6be2de"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e9bf44ab-b949-49bd-aa41-e57ceaedd20e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.509527} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56bf5ae38ef5566da41d3a4cef6be2de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc35fa2c-1a07-4433-adc9-3c2e2f4dd2ad","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.515779} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56bf5ae38ef5566da41d3a4cef6be2de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"936a8cc2-3f19-4f4c-af38-b37c6f10e21a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.528248} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"11cf1242-5fe3-465c-a8fe-4bf5350a6800","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.5284045} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56bf5ae38ef5566da41d3a4cef6be2de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.528232156Z"}]},"request_id":"32443f37-f4b0-4720-9f3d-f45d2c6c34c3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.53527} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56bf5ae38ef5566da41d3a4cef6be2de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"56bf5ae38ef5566da41d3a4cef6be2de","responseTime":53,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"56bf5ae38ef5566da41d3a4cef6be2de"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5e80112572af2b0ff9a9d25f7199b503","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.343545,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e80112572af2b0ff9a9d25f7199b503"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"950bf5a9-700f-4251-abf4-ae8fbadd277e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.5749924} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e80112572af2b0ff9a9d25f7199b503"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ae6b4c2-208f-4097-b38e-659a3c2ce1af","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.581598} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e80112572af2b0ff9a9d25f7199b503"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"0ffe0971-10a4-41cf-a852-9e5036fae57a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.5932884} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"937fab58-28be-41e5-bf36-f77e55f38e0a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.5938115} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e80112572af2b0ff9a9d25f7199b503"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.593263256Z"}]},"request_id":"dee768d1-e0e2-4bb1-b625-cd3a50f74f0b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.6004453} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e80112572af2b0ff9a9d25f7199b503"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5e80112572af2b0ff9a9d25f7199b503"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"5e80112572af2b0ff9a9d25f7199b503","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"040e76f1138db6f4d3455d2c5edac783","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.948323,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040e76f1138db6f4d3455d2c5edac783"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0bdf8e50-bf7b-49b3-ae7c-053a55236863","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.6328325} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040e76f1138db6f4d3455d2c5edac783"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1d00e93b-3a55-470b-a57f-c6e4009753ba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.640633} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040e76f1138db6f4d3455d2c5edac783"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"2606b489-d46d-431a-add3-dc44f38a9bba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.6520529} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"455271d0-e929-4f5c-871a-7e83c08562e5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.6525087} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040e76f1138db6f4d3455d2c5edac783"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.652029665Z"}]},"request_id":"ca2c8199-4f01-4553-ae49-0279b11d3a4d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.6592517} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040e76f1138db6f4d3455d2c5edac783"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"040e76f1138db6f4d3455d2c5edac783"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"040e76f1138db6f4d3455d2c5edac783","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aa914132e23abd64fb97a29b55d8d198","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.208609,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa914132e23abd64fb97a29b55d8d198"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.528232156Z"}]},"request_id":"7433e3ee-4913-41ff-9c86-ea7da6b2f380","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.6925383} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa914132e23abd64fb97a29b55d8d198"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"11ee4025-1274-4247-b1bb-fc6f4da97400","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.7017605} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa914132e23abd64fb97a29b55d8d198"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.528232156Z"}]},"request_id":"17c4fad5-6c21-4190-933b-a2e5a01e7962","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.7198248} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa914132e23abd64fb97a29b55d8d198"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef? 200 49ms","method":"PATCH","requestID":"aa914132e23abd64fb97a29b55d8d198","responseTime":49,"status":200,"url":"/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa914132e23abd64fb97a29b55d8d198"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3483f6ad27ad46c70a99787a556319f9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.833324,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3483f6ad27ad46c70a99787a556319f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.593263256Z"}]},"request_id":"6677a45f-e089-4ba6-a96c-0408cc66970b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.7515311} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3483f6ad27ad46c70a99787a556319f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"50c67248-4878-4478-bb48-a637520e0920","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.7597094} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3483f6ad27ad46c70a99787a556319f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.593263256Z"}]},"request_id":"64332c43-de13-4d96-a309-9696b1dda572","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.77095} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3483f6ad27ad46c70a99787a556319f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3483f6ad27ad46c70a99787a556319f9"} device-1 | {"level":"info","message":"PATCH /devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d? 200 41ms","method":"PATCH","requestID":"3483f6ad27ad46c70a99787a556319f9","responseTime":41,"status":200,"url":"/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cf3f0937366764978c9b7c16b7137454","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.162195,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf3f0937366764978c9b7c16b7137454"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.652029665Z"}]},"request_id":"421a87b0-4468-4921-a6f9-37054e0d583b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.7996101} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf3f0937366764978c9b7c16b7137454"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4986bb35-56a1-4334-a375-ad058e15ce00","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.806732} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf3f0937366764978c9b7c16b7137454"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.652029665Z"}]},"request_id":"a6c2bc53-ab79-474a-8427-728033b787f3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.8162215} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf3f0937366764978c9b7c16b7137454"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/41a67602-23a4-4132-a02e-bbc982b7a6e0? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf3f0937366764978c9b7c16b7137454"} device-1 | {"level":"info","message":"PATCH /devices/41a67602-23a4-4132-a02e-bbc982b7a6e0? 200 35ms","method":"PATCH","requestID":"cf3f0937366764978c9b7c16b7137454","responseTime":35,"status":200,"url":"/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"58e916fdc9033b3e4b2d35559645c5b6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.014888,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58e916fdc9033b3e4b2d35559645c5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b62ca81-29da-4ffc-8593-8f8724c6d8ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.528232156Z"}]},"request_id":"13963173-1839-4742-9e56-1ba254179253","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.8367324} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58e916fdc9033b3e4b2d35559645c5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.862959,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.025994,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.003196,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ab67dc78-1442-481b-89be-2996b41254d2","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ab67dc78-1442-481b-89be-2996b41254d2","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58e916fdc9033b3e4b2d35559645c5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ea36c86-7fb5-4df1-857f-2a9bb85a438c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4ea36c86-7fb5-4df1-857f-2a9bb85a438c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58e916fdc9033b3e4b2d35559645c5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf7de107-1040-49b7-a39b-9d0eb9167438","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bf7de107-1040-49b7-a39b-9d0eb9167438","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58e916fdc9033b3e4b2d35559645c5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:33780","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33780","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.702128,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58e916fdc9033b3e4b2d35559645c5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"58e916fdc9033b3e4b2d35559645c5b6"} device-1 | {"level":"info","message":"GET /devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef? 200 38ms","method":"GET","requestID":"58e916fdc9033b3e4b2d35559645c5b6","responseTime":38,"status":200,"url":"/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6e37001eb2ba580a2ebead9df5f62afe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.707184,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.593263256Z"}]},"request_id":"410b5987-f4e3-4464-bc22-cc7681ed82d3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.877514} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.852868,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.562697,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.717894,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33780","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33780","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.521824,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6398e3f-bab4-4bfa-ba77-9a913bb72f08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/e6398e3f-bab4-4bfa-ba77-9a913bb72f08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c8e3b682-c576-4b29-bfb6-07715cdb7b9c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/c8e3b682-c576-4b29-bfb6-07715cdb7b9c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8435a6bf-2d78-46e5-bd55-2efa94e9c8c2","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8435a6bf-2d78-46e5-bd55-2efa94e9c8c2","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/17d09762-76a0-4d7a-ab7c-31d2da74c98a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/17d09762-76a0-4d7a-ab7c-31d2da74c98a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:33784","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33798","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33784","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.968405,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33798","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761321,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e37001eb2ba580a2ebead9df5f62afe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e37001eb2ba580a2ebead9df5f62afe"} device-1 | {"level":"info","message":"GET /devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d? 200 37ms","method":"GET","requestID":"6e37001eb2ba580a2ebead9df5f62afe","responseTime":37,"status":200,"url":"/devices/2f2e97f4-dd50-4a37-9edf-eb87d8f79a3d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2917a55ae8210e7bde380d3d6af4d646","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672247,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2917a55ae8210e7bde380d3d6af4d646"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F41a67602-23a4-4132-a02e-bbc982b7a6e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.652029665Z"}]},"request_id":"fe9d7195-5a09-4583-8c02-50fb636723b5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.919097} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2917a55ae8210e7bde380d3d6af4d646"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.955662,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.49062,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53772","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.558372,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fee65fee-ad2d-4e98-b3f8-a74c17b7f86a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/fee65fee-ad2d-4e98-b3f8-a74c17b7f86a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2917a55ae8210e7bde380d3d6af4d646"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89864643-302e-425a-9909-3b25ee6171eb","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/89864643-302e-425a-9909-3b25ee6171eb","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2917a55ae8210e7bde380d3d6af4d646"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d45297fc-5d2c-4712-b0f7-b9e53779faf7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d45297fc-5d2c-4712-b0f7-b9e53779faf7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2917a55ae8210e7bde380d3d6af4d646"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:33780","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:33780","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.564033,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/4b62ca81-29da-4ffc-8593-8f8724c6d8ef","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2917a55ae8210e7bde380d3d6af4d646"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/41a67602-23a4-4132-a02e-bbc982b7a6e0? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2917a55ae8210e7bde380d3d6af4d646"} device-1 | {"level":"info","message":"GET /devices/41a67602-23a4-4132-a02e-bbc982b7a6e0? 200 23ms","method":"GET","requestID":"2917a55ae8210e7bde380d3d6af4d646","responseTime":23,"status":200,"url":"/devices/41a67602-23a4-4132-a02e-bbc982b7a6e0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cbdb98ead0dfbf64d6224eb2a5a1aea3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.162148,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbdb98ead0dfbf64d6224eb2a5a1aea3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"22c8bae8-50f8-4ba7-9d0e-e1dfa24d43f5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.9672623} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbdb98ead0dfbf64d6224eb2a5a1aea3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d933b6bb-bd3f-423b-946a-a26bc26247bc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.9716036} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbdb98ead0dfbf64d6224eb2a5a1aea3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"04c63302-8bf5-4383-9f67-d4c44247930b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.982769} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a5d6445-2235-4886-a2eb-b8179195fe98","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.9831548} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbdb98ead0dfbf64d6224eb2a5a1aea3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.982754424Z"}]},"request_id":"593b0b68-8637-473f-9fbc-cddf81bc2c19","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866662.9868114} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbdb98ead0dfbf64d6224eb2a5a1aea3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cbdb98ead0dfbf64d6224eb2a5a1aea3"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"cbdb98ead0dfbf64d6224eb2a5a1aea3","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"38ebba88e43cce40779fa702a6b97e66","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.504431,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866662,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Mn0.5o1amGI2uOyouyg-kzr9OBbCtCO5h9FxF9LWwQ3r4cY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38ebba88e43cce40779fa702a6b97e66"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6c9ef34c-8e51-47a0-8b4e-fa905b3a81c4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0161765} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38ebba88e43cce40779fa702a6b97e66"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88a02210-834d-47da-8706-fef7c4754629","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0223694} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38ebba88e43cce40779fa702a6b97e66"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9fdb89b1-9c29-4179-8a82-af0bd8e7ea01","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0333908} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1353101e-fa47-4f85-9ed4-f956462f2c46","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0337574} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38ebba88e43cce40779fa702a6b97e66"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.033365674Z"}]},"request_id":"59c32bd8-c260-46c1-94fa-bc57b8b1f300","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0394037} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38ebba88e43cce40779fa702a6b97e66"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"38ebba88e43cce40779fa702a6b97e66","responseTime":47,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"38ebba88e43cce40779fa702a6b97e66"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2M30.QFXy11teSZxPHie41UTM3cNpwAnBxGqP30kLDnS7BIA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"97e34287620dd693c3225426d19e7a93","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:23Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.018776,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866663,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2M30.QFXy11teSZxPHie41UTM3cNpwAnBxGqP30kLDnS7BIA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97e34287620dd693c3225426d19e7a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d655d427-494a-4bd4-bc2c-c215f8a1d67d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0727057} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97e34287620dd693c3225426d19e7a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf6c6ff0-f684-4ae8-8e99-4313cbb01c2d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.079449} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97e34287620dd693c3225426d19e7a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a84861dc-c934-428f-8010-b28ce4355db8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0925322} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ece75fc-d139-47c5-9c6e-5253ae5c6af8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.0927584} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97e34287620dd693c3225426d19e7a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.092508190Z"}]},"request_id":"620050da-55d9-4f86-8922-28942d65a56d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866663.098999} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97e34287620dd693c3225426d19e7a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"97e34287620dd693c3225426d19e7a93","responseTime":53,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"97e34287620dd693c3225426d19e7a93"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"33b6252c6e993ff52cc7d31b5c9e8171","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/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":"33b6252c6e993ff52cc7d31b5c9e8171"} device-1 | {"level":"info","message":"OPTIONS /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/websocket 200 2ms","method":"OPTIONS","requestID":"33b6252c6e993ff52cc7d31b5c9e8171","responseTime":2,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0f6a02b20ba6f30981db5927cb52a23b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/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":"0f6a02b20ba6f30981db5927cb52a23b"} device-1 | {"level":"info","message":"OPTIONS /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/websocket 200 2ms","method":"OPTIONS","requestID":"0f6a02b20ba6f30981db5927cb52a23b","responseTime":2,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e5d1ea81bb86691bdac9ebf8e5a4c40c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.294851,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6267a72c83650427d0e2939279ac9b54","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5d1ea81bb86691bdac9ebf8e5a4c40c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.286628,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6267a72c83650427d0e2939279ac9b54"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e5d1ea81bb86691bdac9ebf8e5a4c40c"} device-1 | {"level":"info","message":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/websocket 200 40ms","method":"POST","requestID":"e5d1ea81bb86691bdac9ebf8e5a4c40c","responseTime":40,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/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":"6267a72c83650427d0e2939279ac9b54"} device-1 | {"level":"info","message":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/websocket 200 43ms","method":"POST","requestID":"6267a72c83650427d0e2939279ac9b54","responseTime":43,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"fd521b86509222e941e28be2433bce21","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.40425,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd521b86509222e941e28be2433bce21"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.092508190Z"}]},"request_id":"31d62566-097b-48cf-8398-a94a045e7c1e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.1791708} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd521b86509222e941e28be2433bce21"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fd521b86509222e941e28be2433bce21"} device-1 | {"level":"info","message":"GET /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253? 200 21ms","method":"GET","requestID":"fd521b86509222e941e28be2433bce21","responseTime":21,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"786464df6dde789122bbe33f049e4359","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.780015,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"786464df6dde789122bbe33f049e4359"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281685,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4214e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.207347,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd423bf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F053e21a9-f2ae-4b0e-9222-f1999c0a0ac8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.033365674Z"}]},"request_id":"4980eee1-20cf-4e09-9c51-c037e10fb308","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.271977} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4214e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.092508190Z"}]},"request_id":"f7043671-e895-472a-9f32-ce493da5e06c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.2737346} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd423bf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253? 200 16ms","method":"GET","requestID":"dd423bf0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708907,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4214e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/053e21a9-f2ae-4b0e-9222-f1999c0a0ac8? 200 22ms","method":"GET","requestID":"dd4214e0-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/053e21a9-f2ae-4b0e-9222-f1999c0a0ac8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.996081,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4c4e10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.176917,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4c7520-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.204326,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee90a91f-2e96-4687-952a-b888b282ef23","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3402345} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4cc340-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.982754424Z"}]},"request_id":"80b13422-ae7f-4b45-9a23-5634a53ec257","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3433568} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4c4e10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.092508190Z"}]},"request_id":"bec62599-0d77-4eb0-b7d0-5ad50fb0aa89","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3465915} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd4c7520-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling 200 18ms","method":"POST","requestID":"dd4cc340-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F49ec64db-028d-4c66-a3e4-bf403f726c47#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F49ec64db-028d-4c66-a3e4-bf403f726c47","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"d618c2e5-c8da-4925-afe1-8fcb0c45a8ca","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3551502} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7549651-9651-4b6d-b994-ebd30054ee31","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3554556} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b? 200 28ms","method":"GET","requestID":"dd4c4e10-0158-11ef-926d-7f5be4425d00","responseTime":28,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253? 200 28ms","method":"GET","requestID":"dd4c7520-0158-11ef-926d-7f5be4425d00","responseTime":28,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"786464df6dde789122bbe33f049e4359"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0f56e45-cf79-4c2a-aed6-a5e3924a0d17","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3602014} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.920576,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd501ea0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d8143bd-f8fe-4f30-990b-23ad896d5dbf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3683634} experiment-1 | {"data":{"experiment":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling 200 14ms","method":"POST","requestID":"dd501ea0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.996378,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"786464df6dde789122bbe33f049e4359"} experiment-1 | {"level":"info","message":"POST /experiments? 201 172ms","method":"POST","requestID":"786464df6dde789122bbe33f049e4359","responseTime":172,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd513010-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling 200 14ms","method":"POST","requestID":"dd513010-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0e67e156855d970ffcb021eef2acf23a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.867323,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e67e156855d970ffcb021eef2acf23a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1abe6821-cb47-4b0f-816a-58cd62cfa791","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3823142} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.09435,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd53a110-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:22.982754424Z"}]},"request_id":"9d00fc7d-3097-4b70-9419-bdcd826bf8ec","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.3876991} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling 200 11ms","method":"POST","requestID":"dd53a110-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e67e156855d970ffcb021eef2acf23a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"401dbf2c-f4de-4af4-b05f-0c0a40c268ad"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"22897345-847f-43a1-83eb-2778d1a53131"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e087776c-1e61-466c-9c95-2199e960d29e"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e67e156855d970ffcb021eef2acf23a"} device-1 | {"level":"info","message":"GET /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b? 200 17ms","method":"GET","requestID":"0e67e156855d970ffcb021eef2acf23a","responseTime":17,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.002486,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eb93f8bd72e747db41d9c8169d190e21","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd563920-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643717,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb93f8bd72e747db41d9c8169d190e21"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:23.092508190Z"}]},"request_id":"dda63c96-6241-4139-bceb-dcd8da79f7ca","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.411953} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb93f8bd72e747db41d9c8169d190e21"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"26ed8b49-4f00-4963-b52d-8e01aeda0d1f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.4156253} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbab11c5-9a34-4c34-ba69-6967e4c021ae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.4158843} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd563920-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eb93f8bd72e747db41d9c8169d190e21"} device-1 | {"level":"info","message":"GET /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253? 200 18ms","method":"GET","requestID":"eb93f8bd72e747db41d9c8169d190e21","responseTime":18,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"dd563920-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"015895a6-685e-4c84-95a6-3c4a5f0b13f8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.4747248} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.257114,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd61d1e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling 200 9ms","method":"POST","requestID":"dd61d1e0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c120c81-7712-4775-b053-e33e70bb3263","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.486367} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.499827,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd63a6a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling 200 9ms","method":"POST","requestID":"dd63a6a0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9a719240-6fff-4447-a902-ee182458460b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"87fe55225a72f3384f8eb4caaacd7aa8","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"87fe55225a72f3384f8eb4caaacd7aa8","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"87fe55225a72f3384f8eb4caaacd7aa8"} device-1 | {"data":{"peerconnection":"9a719240-6fff-4447-a902-ee182458460b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9a719240-6fff-4447-a902-ee182458460b","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/9a719240-6fff-4447-a902-ee182458460b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9a719240-6fff-4447-a902-ee182458460b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"30046a1baf19d99270b29ac9187cc0e0","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9a719240-6fff-4447-a902-ee182458460b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67902d0a-fae1-460b-99f1-00453f01d422","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.7197478} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.434775,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd873430-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/9a719240-6fff-4447-a902-ee182458460b 200 10ms","method":"GET","requestID":"dd873430-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/peerconnections/9a719240-6fff-4447-a902-ee182458460b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 39ms","method":"POST","requestID":"30046a1baf19d99270b29ac9187cc0e0","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"30046a1baf19d99270b29ac9187cc0e0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de59f3b8-830e-4613-aa66-23a4eb4cd502","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.7519112} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.494516,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8c1630-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling 200 10ms","method":"POST","requestID":"dd8c1630-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"07f9847a-f52b-48aa-a9bd-c9b48c65732d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.7640197} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.586714,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8deaf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling 200 10ms","method":"POST","requestID":"dd8deaf0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ca8f842d40bf74279a5b7d18d363cf39","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.476633,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca8f842d40bf74279a5b7d18d363cf39"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca8f842d40bf74279a5b7d18d363cf39"} experiment-1 | {"level":"info","message":"GET /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47 200 17ms","method":"GET","requestID":"ca8f842d40bf74279a5b7d18d363cf39","responseTime":17,"status":200,"url":"/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5fc72155e8ad7c21a8b081bfc1bc9ff3","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.920176,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5fc72155e8ad7c21a8b081bfc1bc9ff3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.132716,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866665,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2NX0.KIGQqPdCzWqtItkwGlNtbokYC7egc-zRVwkpPQYRXoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd9983b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9a719240-6fff-4447-a902-ee182458460b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9a719240-6fff-4447-a902-ee182458460b': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9a719240-6fff-4447-a902-ee182458460b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"42333b0c-0d31-4964-afd4-fd5115de5890","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.8615963} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"899a39a06eb091ff70206cd7f66cd8ee","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b"}}},"level":"info","message":"received a callback"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e22f19a6-9535-4a44-88a1-c50dfd7a2223","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.8622677} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9d4243fb2a83f1ea016e460848c2155f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd9983b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9a719240-6fff-4447-a902-ee182458460b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"9a719240-6fff-4447-a902-ee182458460b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/9a719240-6fff-4447-a902-ee182458460b 204 58ms","method":"DELETE","requestID":"dd9983b0-0158-11ef-926d-7f5be4425d00","responseTime":58,"status":204,"url":"/peerconnections/9a719240-6fff-4447-a902-ee182458460b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0abf9c9-0647-4d25-b275-0e2651c10164","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.9281793} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.234707,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dda67c00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling 200 17ms","method":"POST","requestID":"dda67c00-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F49ec64db-028d-4c66-a3e4-bf403f726c47': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F49ec64db-028d-4c66-a3e4-bf403f726c47","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"b0cd8c82-5859-4d34-bd36-4940df024404","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.9394996} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"49f13805-1f84-426b-908c-50ecb23cc6cc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.9399626} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5fc72155e8ad7c21a8b081bfc1bc9ff3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ebeb0c1-a22c-4ba3-8584-4d18941ac253","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98454a00-3ea3-4076-83d8-a32c37c61957","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866665.9475} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.10023,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dda98940-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling 200 15ms","method":"POST","requestID":"dda98940-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"} gateway-1 | {"time_local":"23/Apr/2024:10:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5fc72155e8ad7c21a8b081bfc1bc9ff3"} experiment-1 | {"level":"info","message":"DELETE /experiments/49ec64db-028d-4c66-a3e4-bf403f726c47 204 176ms","method":"DELETE","requestID":"5fc72155e8ad7c21a8b081bfc1bc9ff3","responseTime":176,"status":204,"url":"/experiments/49ec64db-028d-4c66-a3e4-bf403f726c47"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"899a39a06eb091ff70206cd7f66cd8ee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"899a39a06eb091ff70206cd7f66cd8ee","responseTime":135,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"9d4243fb2a83f1ea016e460848c2155f","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"9d4243fb2a83f1ea016e460848c2155f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevices called"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"369770c00d62df9cfd0aa8ea00abc0d9","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2195","request_time":"0.876","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"34ee3c660ddcf9d89d95cceb39b267b2"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.000891,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866666,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"369770c00d62df9cfd0aa8ea00abc0d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"23/Apr/2024:10:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","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":"e12322061b66dcd0d149ea5308a984d9"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1ebeb0c1-a22c-4ba3-8584-4d18941ac253' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/70bbfaca-c5de-4ca6-aaf6-9f4991d5f93b' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cededcf3-a49c-47ee-8c7e-850b7ccf3a59","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.0253248} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"369770c00d62df9cfd0aa8ea00abc0d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59df7f96-9cde-4261-9464-44259bcd212f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.0328836} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"369770c00d62df9cfd0aa8ea00abc0d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"808c83d7-66d7-4d94-b24f-a1df3b178932","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.0427582} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"54c0ce68-faae-4246-8c7d-ddc9e764ed4f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.0429244} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"369770c00d62df9cfd0aa8ea00abc0d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"a938fa47-bd6d-4869-8cae-326e02c95bb8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.047371} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"369770c00d62df9cfd0aa8ea00abc0d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"369770c00d62df9cfd0aa8ea00abc0d9"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"369770c00d62df9cfd0aa8ea00abc0d9","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"02274a4f283cdd0c1445b354f4f00c20","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.71682,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866666,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02274a4f283cdd0c1445b354f4f00c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ac86cbc7-b0be-4a5d-83d9-b6596046620f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.071944} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02274a4f283cdd0c1445b354f4f00c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0edd0939-9966-4e83-8502-4d469d4b0416","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.077034} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02274a4f283cdd0c1445b354f4f00c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"bc5ca7e4-b4d6-480f-9f3d-815687ccb5be","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.0872335} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0c6db6e2-0c59-4f61-8fb2-e594528ae0d1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.0874166} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02274a4f283cdd0c1445b354f4f00c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.087212347Z"}]},"request_id":"33d27d8e-d3e1-4b72-ac56-ca3abb300b94","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.091539} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02274a4f283cdd0c1445b354f4f00c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02274a4f283cdd0c1445b354f4f00c20"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"02274a4f283cdd0c1445b354f4f00c20","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"414a876110713e1321e4a86678a99913","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.319816,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866666,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"414a876110713e1321e4a86678a99913"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"81fe4316-4256-4f5a-aff1-13ec03966588","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.5916128} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"414a876110713e1321e4a86678a99913"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"450d053f-7d05-4e3e-8af3-9e578b4bf0c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.5995553} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"414a876110713e1321e4a86678a99913"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"dc5ed290-6a0e-4b0a-b5b2-6add2f1aa841","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866666.6213496} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"414a876110713e1321e4a86678a99913"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"414a876110713e1321e4a86678a99913"} device-1 | {"level":"info","message":"PATCH /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c 200 49ms","method":"PATCH","requestID":"414a876110713e1321e4a86678a99913","responseTime":49,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"52b91cd786732b73855b003009d2aa33","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.168816,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866666,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2Nn0.Mm2jT6EuYAKbC1JUFpIMA8_ndVltP62bwNMPwCEpL5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"52b91cd786732b73855b003009d2aa33"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/websocket 200 22ms","method":"POST","requestID":"52b91cd786732b73855b003009d2aa33","responseTime":22,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"52b91cd786732b73855b003009d2aa33"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"89b0a3ac9a708f2b6412bc4f1d95eafe","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/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":"89b0a3ac9a708f2b6412bc4f1d95eafe"} device-1 | {"level":"info","message":"OPTIONS /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/websocket 200 1ms","method":"OPTIONS","requestID":"89b0a3ac9a708f2b6412bc4f1d95eafe","responseTime":1,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6e7682b4ceeb7dce3ee9f38cc61fadfc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.143938,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e7682b4ceeb7dce3ee9f38cc61fadfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/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":"6e7682b4ceeb7dce3ee9f38cc61fadfc"} device-1 | {"level":"info","message":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/websocket 200 46ms","method":"POST","requestID":"6e7682b4ceeb7dce3ee9f38cc61fadfc","responseTime":46,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"128abe3ddbf2269178a5208b7db6cc73","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.06532,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"128abe3ddbf2269178a5208b7db6cc73"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"6cd1be4d-d441-4c2b-ba60-946cc794c939","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.2067213} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"128abe3ddbf2269178a5208b7db6cc73"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"128abe3ddbf2269178a5208b7db6cc73"} device-1 | {"level":"info","message":"GET /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c? 200 20ms","method":"GET","requestID":"128abe3ddbf2269178a5208b7db6cc73","responseTime":20,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"25fe4099b343d2e6166fa3d81142610b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.667423,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"25fe4099b343d2e6166fa3d81142610b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.087212347Z"}]},"request_id":"d2763f34-4343-454b-b907-576471ad09c9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.2340367} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"25fe4099b343d2e6166fa3d81142610b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"25fe4099b343d2e6166fa3d81142610b"} device-1 | {"level":"info","message":"GET /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b? 200 19ms","method":"GET","requestID":"25fe4099b343d2e6166fa3d81142610b","responseTime":19,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cd6135b3eaf533462ef5015133b4d922","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.065688,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd6135b3eaf533462ef5015133b4d922"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.026491,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df130450-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.247531,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df135270-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"e28554ec-2440-4d63-8205-3029afd1c323","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.3260484} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df130450-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.087212347Z"}]},"request_id":"bf9be140-243e-495b-987c-8e206de721e8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.3313239} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df135270-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"GET /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c? 200 26ms","method":"GET","requestID":"df130450-0158-11ef-926d-7f5be4425d00","responseTime":26,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b? 200 31ms","method":"GET","requestID":"df135270-0158-11ef-926d-7f5be4425d00","responseTime":31,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.15559,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df241b50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.6403,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df249080-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.571901,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4dc10bda-fdca-4cea-942e-461d99b74487","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.4389553} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df2505b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"f62ca240-e4ae-4c24-a4b9-3ff8b8500def","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.445942} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df241b50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.087212347Z"}]},"request_id":"82cd79cf-c336-4fb7-8197-5171ae1ef5bb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.451465} device-1 | {"level":"info","message":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling 200 27ms","method":"POST","requestID":"df2505b0-0158-11ef-926d-7f5be4425d00","responseTime":27,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df249080-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe313c0-fa5c-46d2-8718-42afa2d52d21#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe313c0-fa5c-46d2-8718-42afa2d52d21","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"b1138fea-b0d8-40a7-98ce-942212531f58","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.4639883} device-1 | {"level":"info","message":"GET /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c? 200 45ms","method":"GET","requestID":"df241b50-0158-11ef-926d-7f5be4425d00","responseTime":45,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7690d1c-bd5e-450b-80ae-4099409667f6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.464247} device-1 | {"level":"info","message":"GET /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b? 200 44ms","method":"GET","requestID":"df249080-0158-11ef-926d-7f5be4425d00","responseTime":44,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e6317c02-87d8-478f-80c9-a652427987bd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.4679573} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.5536,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd6135b3eaf533462ef5015133b4d922"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":32}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df2a0ec0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling 200 20ms","method":"POST","requestID":"df2a0ec0-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"763ec1de-bbe2-4d7e-a71f-ecd087e4ff02","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.4807694} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.141502,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df2be380-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.241","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cd6135b3eaf533462ef5015133b4d922"} experiment-1 | {"level":"info","message":"POST /experiments? 201 235ms","method":"POST","requestID":"cd6135b3eaf533462ef5015133b4d922","responseTime":235,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling 200 16ms","method":"POST","requestID":"df2be380-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8839057ce0db00d398f9799cbcf73450","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5137d3d1-2227-44c4-8ead-b2e7503d60e2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.4986396} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.214474,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.911755,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df2ef0c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8839057ce0db00d398f9799cbcf73450"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling 200 18ms","method":"POST","requestID":"df2ef0c0-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"108f4df5-d432-490a-a222-077151eb03c1"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"7e03b3bb-9a0f-4790-bc1c-161c4a1e0dfa"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a4fd75e3-7072-4b60-bb69-f77de1064e04"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.042743185Z"}]},"request_id":"9e1a2552-0e04-48ab-a70a-efa4a7b0ed6b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.5122087} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8839057ce0db00d398f9799cbcf73450"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.245359,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df324c20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8839057ce0db00d398f9799cbcf73450"} device-1 | {"level":"info","message":"GET /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c? 200 30ms","method":"GET","requestID":"8839057ce0db00d398f9799cbcf73450","responseTime":30,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5754d955ddb65bc25ada10b862ac2591","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9b76c51f-e567-4ff1-907a-b41f47e39d66","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.5340483} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f6447431-1ed9-4c02-b2d8-823e74b11c8f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.5343964} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df324c20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.932733,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5754d955ddb65bc25ada10b862ac2591"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:26.087212347Z"}]},"request_id":"aacf09ac-3d7c-44c6-a1b1-633f1a46dbac","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.5465448} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5754d955ddb65bc25ada10b862ac2591"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"df324c20-0158-11ef-926d-7f5be4425d00","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5754d955ddb65bc25ada10b862ac2591"} device-1 | {"level":"info","message":"GET /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b? 200 37ms","method":"GET","requestID":"5754d955ddb65bc25ada10b862ac2591","responseTime":37,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4ff6d77-07fb-42d6-aeae-533052c3985f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.60404} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.511289,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df3f4470-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling 200 11ms","method":"POST","requestID":"df3f4470-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4f29a1b9-148b-4a9e-ab01-f546c60afe9d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.6167078} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.551511,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df414040-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0a7dbe6010b01d52eae6d10adfe3dfc2","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling 200 13ms","method":"POST","requestID":"df414040-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"0a7dbe6010b01d52eae6d10adfe3dfc2","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +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":"0a7dbe6010b01d52eae6d10adfe3dfc2"} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","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/2d7f757e-7690-4fe8-93df-af02e9bd1cda' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0decd715f4893abcc9eb6ba56e5e7290","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2d7f757e-7690-4fe8-93df-af02e9bd1cda","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3fc4829a-20ff-4d2f-910a-7d5cc450964c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.6912544} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.73287,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df4c8ae0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda 200 11ms","method":"GET","requestID":"df4c8ae0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 43ms","method":"POST","requestID":"0decd715f4893abcc9eb6ba56e5e7290","responseTime":43,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +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":"0decd715f4893abcc9eb6ba56e5e7290"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4c7efec5-af15-423e-a00c-1125d65d732b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.7276227} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.120577,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df523030-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling 200 9ms","method":"POST","requestID":"df523030-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"495ac58e-d2fb-4ea0-97ba-b0a7025d0753","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.7389367} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.698651,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df53dde0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling 200 9ms","method":"POST","requestID":"df53dde0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a86a79a47c0d7c221ba8377707ed8f70","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.222977,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a86a79a47c0d7c221ba8377707ed8f70"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"} gateway-1 | {"time_local":"23/Apr/2024:10:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a86a79a47c0d7c221ba8377707ed8f70"} experiment-1 | {"level":"info","message":"GET /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21 200 23ms","method":"GET","requestID":"a86a79a47c0d7c221ba8377707ed8f70","responseTime":23,"status":200,"url":"/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e658a2ee701095350bb3efd97a26721f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.088058,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e658a2ee701095350bb3efd97a26721f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.45773,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866668,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OH0.n9LMPx4Qi4bs_FJCgXJGtCe2cFOGhbaww8qf9QjJSIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df6d0b30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"e4496588556507e87c066434188e948c","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bd4cddc2c9d4b9b9702adb34fd30b134","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2d7f757e-7690-4fe8-93df-af02e9bd1cda': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2d7f757e-7690-4fe8-93df-af02e9bd1cda","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"7b5e5031-4d63-4d55-be72-4c8f39d60ce0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.9337206} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fbec9b9b-905c-4fe1-935d-2707ec66ee3a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.9342315} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df6d0b30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"data":{"peerconnection":"2d7f757e-7690-4fe8-93df-af02e9bd1cda","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda 204 63ms","method":"DELETE","requestID":"df6d0b30-0158-11ef-926d-7f5be4425d00","responseTime":63,"status":204,"url":"/peerconnections/2d7f757e-7690-4fe8-93df-af02e9bd1cda"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae294d84-4d9f-4abc-b3ea-9e048c8e095b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"77ff23f2-a9a2-4a13-8abe-26d11826b7bc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866668.9969819} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.589875,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df7a9fc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling 200 18ms","method":"POST","requestID":"df7a9fc0-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe313c0-fa5c-46d2-8718-42afa2d52d21': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe313c0-fa5c-46d2-8718-42afa2d52d21","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"040e81ff-c8cf-4106-8655-fe8681ef123a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.0084178} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2b439d3-abe0-4b23-a9b9-b1f5366b0666","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.0088413} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e658a2ee701095350bb3efd97a26721f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:29Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b6c9c91-3972-4eb9-8253-df765f8fa60c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"276d84a8-30aa-4b9d-b764-123eb450c2b8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.0152824} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.027166,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df7dd410-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling 200 16ms","method":"POST","requestID":"df7dd410-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"} gateway-1 | {"time_local":"23/Apr/2024:10:04:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21 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":"e658a2ee701095350bb3efd97a26721f"} gateway-1 | {"time_local":"23/Apr/2024:10:04:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2013","request_time":"2.420","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"591fc9432c6ea622486b67809188f908"} experiment-1 | {"level":"info","message":"DELETE /experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21 204 194ms","method":"DELETE","requestID":"e658a2ee701095350bb3efd97a26721f","responseTime":194,"status":204,"url":"/experiments/6fe313c0-fa5c-46d2-8718-42afa2d52d21"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 149ms","method":"POST","requestID":"e4496588556507e87c066434188e948c","responseTime":149,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"e4496588556507e87c066434188e948c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 149ms","method":"POST","requestID":"bd4cddc2c9d4b9b9702adb34fd30b134","responseTime":149,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"bd4cddc2c9d4b9b9702adb34fd30b134"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OX0.TLs88jUrfuVCdTlVD_O2s0NicM3x3OOPrcU-875tRDA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0db9cd3859726482d9eb7137fb117da7","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1960","request_time":"0.917","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"524f084723c0aecf1b096bf5d2ee22dc"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:29Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.897708,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:29Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9b6c9c91-3972-4eb9-8253-df765f8fa60c' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866669,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OX0.TLs88jUrfuVCdTlVD_O2s0NicM3x3OOPrcU-875tRDA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0db9cd3859726482d9eb7137fb117da7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ae294d84-4d9f-4abc-b3ea-9e048c8e095b' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4a2c2aa9-9009-4543-8611-09ca50276b92","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.109083} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0db9cd3859726482d9eb7137fb117da7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20d62e7f-912f-4445-b63a-bd5cc62c29dd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1159236} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0db9cd3859726482d9eb7137fb117da7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a0cef3a2-970c-44bf-997e-aecc7a0d6770","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1290872} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f23d304f-c78e-4b2b-97fb-26adac4e8b8f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.129303} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0db9cd3859726482d9eb7137fb117da7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.129061525Z"}]},"request_id":"e019dd8b-e69e-4e97-8243-2f7eb7e92644","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1348822} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0db9cd3859726482d9eb7137fb117da7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0db9cd3859726482d9eb7137fb117da7"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"0db9cd3859726482d9eb7137fb117da7","responseTime":53,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OX0.TLs88jUrfuVCdTlVD_O2s0NicM3x3OOPrcU-875tRDA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ad6ea5ac06dd6a5c619ac1df9bd5911e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:29Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.810178,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866669,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY2OX0.TLs88jUrfuVCdTlVD_O2s0NicM3x3OOPrcU-875tRDA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ea5ac06dd6a5c619ac1df9bd5911e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"84a92a07-9eb3-492d-9760-e06f4c832de9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.160905} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ea5ac06dd6a5c619ac1df9bd5911e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f9e930e7-00b6-43dc-bfc7-1c5843f841b9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1663537} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ea5ac06dd6a5c619ac1df9bd5911e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7683084d-481a-4288-89cd-cd7a95e8c5de","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1769383} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5229fcb7-6696-4e87-81af-551c5ea6372a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1772785} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ea5ac06dd6a5c619ac1df9bd5911e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.176922145Z"}]},"request_id":"424f8f43-4d85-4328-9014-eddf1765690e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866669.1837947} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ea5ac06dd6a5c619ac1df9bd5911e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ad6ea5ac06dd6a5c619ac1df9bd5911e"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"ad6ea5ac06dd6a5c619ac1df9bd5911e","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c61e9941bbcf400e31c4d30a6eef7b68","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/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":"c61e9941bbcf400e31c4d30a6eef7b68"} device-1 | {"level":"info","message":"OPTIONS /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/websocket 200 2ms","method":"OPTIONS","requestID":"c61e9941bbcf400e31c4d30a6eef7b68","responseTime":2,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e1a634e6fb869c195b15fbd15c22b5ba","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.262084,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e1a634e6fb869c195b15fbd15c22b5ba"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"ab916aa550dc4541990ae5ced901c8e8","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/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":"ab916aa550dc4541990ae5ced901c8e8"} device-1 | {"level":"info","message":"OPTIONS /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/websocket 200 2ms","method":"OPTIONS","requestID":"ab916aa550dc4541990ae5ced901c8e8","responseTime":2,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4c0e5af93ef5ab15c526099c54e8be05","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.266704,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"e1a634e6fb869c195b15fbd15c22b5ba"} device-1 | {"level":"info","message":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/websocket 200 49ms","method":"POST","requestID":"e1a634e6fb869c195b15fbd15c22b5ba","responseTime":49,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/websocket"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c0e5af93ef5ab15c526099c54e8be05"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/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":"4c0e5af93ef5ab15c526099c54e8be05"} device-1 | {"level":"info","message":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/websocket 200 24ms","method":"POST","requestID":"4c0e5af93ef5ab15c526099c54e8be05","responseTime":24,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c434f2623c70b5f3c193647703c3fc46","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.009598,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c434f2623c70b5f3c193647703c3fc46"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.129061525Z"}]},"request_id":"7db89bef-8b0b-47a4-8dce-2b0ed8b7ecee","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.2318847} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c434f2623c70b5f3c193647703c3fc46"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7? 200 17ms","method":"GET","requestID":"c434f2623c70b5f3c193647703c3fc46","responseTime":17,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c434f2623c70b5f3c193647703c3fc46"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c2db5456bd58460696ce6f8eb286eb9a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.100844,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2db5456bd58460696ce6f8eb286eb9a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.176922145Z"}]},"request_id":"1a81387c-0953-43e5-a60f-ce99ad563625","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.2536154} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2db5456bd58460696ce6f8eb286eb9a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1ba1a007-480f-4772-a9a5-280389a6cf99? 200 17ms","method":"GET","requestID":"c2db5456bd58460696ce6f8eb286eb9a","responseTime":17,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ba1a007-480f-4772-a9a5-280389a6cf99? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2db5456bd58460696ce6f8eb286eb9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"26769992b4535c93ac7885df540e8214","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.007533,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26769992b4535c93ac7885df540e8214"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.208852,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0de4e70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.928234,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0de9c90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.129061525Z"}]},"request_id":"3a7fe78c-4fce-4540-ae44-7c521742cf86","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.33369} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0de4e70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.176922145Z"}]},"request_id":"153e147e-0e6c-4c8f-8d3f-66377c4598f5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.3345885} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0de9c90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7? 200 24ms","method":"GET","requestID":"e0de4e70-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1ba1a007-480f-4772-a9a5-280389a6cf99? 200 24ms","method":"GET","requestID":"e0de9c90-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.260756,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0ed1b80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.109295,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0ed69a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.129061525Z"}]},"request_id":"3d2e279b-4d9f-4638-87a0-17f4cb3e088a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4369462} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0ed1b80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.176922145Z"}]},"request_id":"21ca465c-250f-496e-a0c3-784b74bf1aa7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.438512} authorization-1 | {"client_addr":"127.0.0.1:52364","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0ed69a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a80c6275-486f-4e7c-b133-501233c46b5b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4407835} authorization-1 | {"client_addr":"127.0.0.1:52364","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.244702,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0edb7c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"GET /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7? 200 30ms","method":"GET","requestID":"e0ed1b80-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c09ff16-2be5-4584-b40d-e3cfaf33cee3#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c09ff16-2be5-4584-b40d-e3cfaf33cee3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"d5c42c2c-25a8-4742-9ef3-8b69b06a683b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4448812} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f4d2fef-c1b4-4332-9f82-c1c1c36e2d80","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.445045} device-1 | {"level":"info","message":"GET /devices/1ba1a007-480f-4772-a9a5-280389a6cf99? 200 29ms","method":"GET","requestID":"e0ed69a0-0158-11ef-926d-7f5be4425d00","responseTime":29,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26769992b4535c93ac7885df540e8214"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling 200 33ms","method":"POST","requestID":"e0edb7c0-0158-11ef-926d-7f5be4425d00","responseTime":33,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9ac5517-0e43-4cd8-b0ce-82a87eda8b81","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4550395} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.106475,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0f22490-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"26769992b4535c93ac7885df540e8214"} experiment-1 | {"level":"info","message":"POST /experiments? 201 193ms","method":"POST","requestID":"26769992b4535c93ac7885df540e8214","responseTime":193,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} device-1 | {"level":"info","message":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling 200 15ms","method":"POST","requestID":"e0f22490-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d52788d7e0be3ffe104edba4014747b4","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97506231-8fbc-4ad1-896e-6f8eb4d29312","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4663584} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.34955,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","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 called"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0f3d240-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.853749,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} device-1 | {"level":"info","message":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling 200 14ms","method":"POST","requestID":"e0f3d240-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d52788d7e0be3ffe104edba4014747b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"49b7cddd-be3a-4582-9d83-f2e3dcf1f31a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4764605} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.884452,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0f50ac0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.129061525Z"}]},"request_id":"1f0a4b30-d0a9-41a5-9ebd-9216a43c0076","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.4793298} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d52788d7e0be3ffe104edba4014747b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling 200 17ms","method":"POST","requestID":"e0f50ac0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d52788d7e0be3ffe104edba4014747b4"} device-1 | {"level":"info","message":"GET /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7? 200 20ms","method":"GET","requestID":"d52788d7e0be3ffe104edba4014747b4","responseTime":20,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"0282f284-d9e8-48b2-846b-74054aa6e081"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"40d63168-a616-4e3d-a918-e2ee44a58f06"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"2d5d9380-d89a-4dc4-83a6-7d009e48c514"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"38348cf16294ed0afd28388216241ba5","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.805752,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0f83f10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714315,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866671,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3MX0.pytyn4bLVMRmR8DmNZSyzcyzpuwOa3VwVY5yt1CahzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38348cf16294ed0afd28388216241ba5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"83f1bd09-7869-437a-83c3-84fa0ab4979b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.501961} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5116209-e130-4282-8a24-3cf315f7a980","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.502936} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:29.176922145Z"}]},"request_id":"a27f6451-0b90-47d1-b050-68a7790b4544","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.503546} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0f83f10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38348cf16294ed0afd28388216241ba5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ba1a007-480f-4772-a9a5-280389a6cf99? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"38348cf16294ed0afd28388216241ba5"} device-1 | {"level":"info","message":"GET /devices/1ba1a007-480f-4772-a9a5-280389a6cf99? 200 18ms","method":"GET","requestID":"38348cf16294ed0afd28388216241ba5","responseTime":18,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"e0f83f10-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7ba04d7-14f5-4d2f-a767-e5bebf8207ec","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.564328} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.015269,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e102ed70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling 200 10ms","method":"POST","requestID":"e102ed70-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc668c29-22b1-40ae-b8c4-12ded57ff965","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.5763254} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.024604,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e104c230-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling 200 10ms","method":"POST","requestID":"e104c230-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6442e450-7bcf-4f41-9c6b-f02f54a38e3b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"de29269078c7e990d8f3f546ee84dd5d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"de29269078c7e990d8f3f546ee84dd5d","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"de29269078c7e990d8f3f546ee84dd5d"} device-1 | {"data":{"peerconnection":"6442e450-7bcf-4f41-9c6b-f02f54a38e3b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"6442e450-7bcf-4f41-9c6b-f02f54a38e3b","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/6442e450-7bcf-4f41-9c6b-f02f54a38e3b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6442e450-7bcf-4f41-9c6b-f02f54a38e3b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"39db677405cd26bfc88d2b5cebe089de","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6442e450-7bcf-4f41-9c6b-f02f54a38e3b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3b82c478-c1e4-49b9-bda3-e6c52fed5874","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.8417647} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.071154,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e12d31c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b 200 11ms","method":"GET","requestID":"e12d31c0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"39db677405cd26bfc88d2b5cebe089de","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"39db677405cd26bfc88d2b5cebe089de"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ac0f71c-2b41-43f7-aef3-8b2568c122ea","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.873235} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.683183,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e13213c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling 200 11ms","method":"POST","requestID":"e13213c0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"65087b9e-0e8a-4810-b244-eebc479d554d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866671.8870134} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.524999,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e13436a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling 200 11ms","method":"POST","requestID":"e13436a0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c87e854c68b867e096598e5fef0271c5","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.213454,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c87e854c68b867e096598e5fef0271c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3 HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c87e854c68b867e096598e5fef0271c5"} experiment-1 | {"level":"info","message":"GET /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3 200 23ms","method":"GET","requestID":"c87e854c68b867e096598e5fef0271c5","responseTime":23,"status":200,"url":"/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d80abb7fd9454f8bbdf84568c60e76b6","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.228043,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d80abb7fd9454f8bbdf84568c60e76b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.267053,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e15b6db0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6442e450-7bcf-4f41-9c6b-f02f54a38e3b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6442e450-7bcf-4f41-9c6b-f02f54a38e3b': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6442e450-7bcf-4f41-9c6b-f02f54a38e3b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"00d59022-db16-4ec7-8688-06edf572d34f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.166941} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a34eb675e5be11843f79d55b61b89b8a","responseTime":2,"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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f21a5627-c57f-4a97-bfd7-0156aee92fc3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.1676517} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"42ce3914670122cbd39be2445e7796f2","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e15b6db0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"6442e450-7bcf-4f41-9c6b-f02f54a38e3b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b 204 58ms","method":"DELETE","requestID":"e15b6db0-0158-11ef-926d-7f5be4425d00","responseTime":58,"status":204,"url":"/peerconnections/6442e450-7bcf-4f41-9c6b-f02f54a38e3b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F616e57f1-5e60-42e6-bb09-0afebbcf89b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f4435bc4-6c3f-4b56-815f-17c5b89b6af1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.2316117} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.970552,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e1686600-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c09ff16-2be5-4584-b40d-e3cfaf33cee3': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c09ff16-2be5-4584-b40d-e3cfaf33cee3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"aa265e19-82d9-49ae-a963-98607e1cbeeb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.241259} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/signaling 200 18ms","method":"POST","requestID":"e1686600-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7/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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7661ff2d-eca5-4a99-bbdd-5832657040b6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.2417002} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d80abb7fd9454f8bbdf84568c60e76b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ba1a007-480f-4772-a9a5-280389a6cf99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"030eadb5-643e-4426-ab3d-b01034022d82","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.257331} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.472257,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e16c0f80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling 200 18ms","method":"POST","requestID":"e16c0f80-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/1ba1a007-480f-4772-a9a5-280389a6cf99/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d80abb7fd9454f8bbdf84568c60e76b6"} experiment-1 | {"level":"info","message":"DELETE /experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3 204 191ms","method":"DELETE","requestID":"d80abb7fd9454f8bbdf84568c60e76b6","responseTime":191,"status":204,"url":"/experiments/7c09ff16-2be5-4584-b40d-e3cfaf33cee3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"a34eb675e5be11843f79d55b61b89b8a","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +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.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"a34eb675e5be11843f79d55b61b89b8a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"42ce3914670122cbd39be2445e7796f2","responseTime":145,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"42ce3914670122cbd39be2445e7796f2"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"423954c6ef4620d8c164164e88dfad1e","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2181","request_time":"1.123","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cab7b95bf4684323a924ffde8ef40571"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2044","request_time":"1.143","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"177a8394875a883f4157422348ab8748"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.106094,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/616e57f1-5e60-42e6-bb09-0afebbcf89b7' closed"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"423954c6ef4620d8c164164e88dfad1e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1ba1a007-480f-4772-a9a5-280389a6cf99' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f5c2ec63-cac2-493b-8196-fff61a728725","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.3454769} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"423954c6ef4620d8c164164e88dfad1e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1319efe4-4206-4912-a268-aa8054a7bff0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.3499095} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"423954c6ef4620d8c164164e88dfad1e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"5702b09d-807b-455f-a236-6ac0262390a3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.360888} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"51ea64ce-8582-4c35-a0b9-64103321f859","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.361128} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"423954c6ef4620d8c164164e88dfad1e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.360867722Z"}]},"request_id":"0a069f7a-d4f8-4e33-9fc6-307a6f57967f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.3661091} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"423954c6ef4620d8c164164e88dfad1e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"423954c6ef4620d8c164164e88dfad1e","responseTime":50,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"423954c6ef4620d8c164164e88dfad1e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7225feaf3317c1213bb84437e3dc7eed","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.660793,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7225feaf3317c1213bb84437e3dc7eed"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"abf3ed43-8deb-4415-8d36-9b20424eb11e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.421376} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7225feaf3317c1213bb84437e3dc7eed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6538860-d332-44e9-937b-ebfbe7c5d830","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.4278195} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7225feaf3317c1213bb84437e3dc7eed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"34148682-87df-4fd9-836e-5aebebc9ee62","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.4424226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b0254de-f146-4c5a-81a3-c0facddf9990","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.4426706} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7225feaf3317c1213bb84437e3dc7eed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"36eaa570-46a0-406d-b609-bf64b6858b6f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.4512966} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7225feaf3317c1213bb84437e3dc7eed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7225feaf3317c1213bb84437e3dc7eed"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"7225feaf3317c1213bb84437e3dc7eed","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b6d3d3539388fa2b2de2fdc1a981f143","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.263278,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6d3d3539388fa2b2de2fdc1a981f143"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"3e65e20b-0284-4583-b58d-a3131c0107f3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.9570713} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6d3d3539388fa2b2de2fdc1a981f143"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb25b852-261f-4cfb-81b1-dc56ca7d8a56","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.9636257} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6d3d3539388fa2b2de2fdc1a981f143"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"ed4d292e-f3da-41f5-ae68-5e71c9bf2615","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866672.986675} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6d3d3539388fa2b2de2fdc1a981f143"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0b7c80e2-356f-40e5-9c05-259dafbef631 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b6d3d3539388fa2b2de2fdc1a981f143"} device-1 | {"level":"info","message":"PATCH /devices/0b7c80e2-356f-40e5-9c05-259dafbef631 200 47ms","method":"PATCH","requestID":"b6d3d3539388fa2b2de2fdc1a981f143","responseTime":47,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"708eeb9a63ff71b735b64f8337a9a389","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:33Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.374924,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866672,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Mn0.rkcayE0KulskkOy4ixFYsysCBKTr2QeXNV7TIxDsUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"708eeb9a63ff71b735b64f8337a9a389"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/websocket 200 21ms","method":"POST","requestID":"708eeb9a63ff71b735b64f8337a9a389","responseTime":21,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"708eeb9a63ff71b735b64f8337a9a389"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"5f42608a7bb4531c606cf09d48b325af","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c55a9716-5813-44be-a300-a5913aafc8b1/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":"5f42608a7bb4531c606cf09d48b325af"} device-1 | {"level":"info","message":"OPTIONS /devices/c55a9716-5813-44be-a300-a5913aafc8b1/websocket 200 1ms","method":"OPTIONS","requestID":"5f42608a7bb4531c606cf09d48b325af","responseTime":1,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"30b0f3fceed9d96b13a7df8f475fdd4c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.229681,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30b0f3fceed9d96b13a7df8f475fdd4c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"30b0f3fceed9d96b13a7df8f475fdd4c"} device-1 | {"level":"info","message":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/websocket 200 38ms","method":"POST","requestID":"30b0f3fceed9d96b13a7df8f475fdd4c","responseTime":38,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"37c806a127224d3e5d58b3847d6bb477","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.429287,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37c806a127224d3e5d58b3847d6bb477"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.360867722Z"}]},"request_id":"a348fc10-88ac-47a2-8005-7529a24c84a0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.5507762} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37c806a127224d3e5d58b3847d6bb477"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c55a9716-5813-44be-a300-a5913aafc8b1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"37c806a127224d3e5d58b3847d6bb477"} device-1 | {"level":"info","message":"GET /devices/c55a9716-5813-44be-a300-a5913aafc8b1? 200 21ms","method":"GET","requestID":"37c806a127224d3e5d58b3847d6bb477","responseTime":21,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"262145964893918799ccc6dd1d477c19","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.272599,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"262145964893918799ccc6dd1d477c19"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"06341b92-2f68-424b-8933-bf5f2b146a75","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.5799773} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"262145964893918799ccc6dd1d477c19"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0b7c80e2-356f-40e5-9c05-259dafbef631? 200 20ms","method":"GET","requestID":"262145964893918799ccc6dd1d477c19","responseTime":20,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0b7c80e2-356f-40e5-9c05-259dafbef631? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"262145964893918799ccc6dd1d477c19"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"13758573f8b4b79ed6cb76f56e08ebc6","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.291946,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"13758573f8b4b79ed6cb76f56e08ebc6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.776451,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2dabab0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.194687,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2db08d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.360867722Z"}]},"request_id":"a20c904d-749d-4cdf-9863-66e9f6871436","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.6652453} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2dabab0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"5599a600-5539-441d-b3e4-e01dd8346b60","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.6703353} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2db08d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"GET /devices/c55a9716-5813-44be-a300-a5913aafc8b1? 200 21ms","method":"GET","requestID":"e2dabab0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0b7c80e2-356f-40e5-9c05-259dafbef631? 200 25ms","method":"GET","requestID":"e2db08d0-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.00152,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.02202,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:52364","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2e8eb80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2e939a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:52364","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.462412,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59543895-e101-495c-bdfa-d3e7c42076d5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7520638} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2e960b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling 200 11ms","method":"POST","requestID":"e2e960b0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.360867722Z"}]},"request_id":"28387d48-c7dd-4451-b674-fc277bc0726e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7571347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"4be64ddd-12f8-41d6-8668-71555a7787e0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.757966} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2e8eb80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2e939a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f4b1323-3b55-4bd3-ba61-fc293a2260c9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.765755} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc0afaf10-d90e-4b2a-be3c-b77fb859d22e#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc0afaf10-d90e-4b2a-be3c-b77fb859d22e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"cd8cff54-4b05-4eea-8aff-1a9ae2db0631","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7659361} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0e54730-e24f-4bf4-82a3-01648c82a0e7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7663574} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c55a9716-5813-44be-a300-a5913aafc8b1? 200 22ms","method":"GET","requestID":"e2e8eb80-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.530618,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} device-1 | {"level":"info","message":"GET /devices/0b7c80e2-356f-40e5-9c05-259dafbef631? 200 21ms","method":"GET","requestID":"e2e939a0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2eb5c80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"13758573f8b4b79ed6cb76f56e08ebc6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling 200 13ms","method":"POST","requestID":"e2eb5c80-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1bb19823-9ef6-4667-b6cc-25e509ed7c8f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7742548} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.271931,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","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/c0afaf10-d90e-4b2a-be3c-b77fb859d22e","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2ecbc10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"13758573f8b4b79ed6cb76f56e08ebc6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 180ms","method":"POST","requestID":"13758573f8b4b79ed6cb76f56e08ebc6","responseTime":180,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling 200 10ms","method":"POST","requestID":"e2ecbc10-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b47f3d9e4cdb523d2c222219e5db5222","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686502,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b47f3d9e4cdb523d2c222219e5db5222"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"020b21b4-fbba-4d33-91bf-5d6281243612","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7863884} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.346877,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2eeb7e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.360867722Z"}]},"request_id":"f7b3a8e7-a705-43e1-aaa6-edc0cc8f64a7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.7909405} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling 200 9ms","method":"POST","requestID":"e2eeb7e0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b47f3d9e4cdb523d2c222219e5db5222"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"d7eac163-2b6a-4c84-a8b3-faf7e2909b8a"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"bc5cd27f-1b1a-4d08-924a-347e472e2de7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"37ccccde-55e9-42d3-b276-112158814b09"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c55a9716-5813-44be-a300-a5913aafc8b1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b47f3d9e4cdb523d2c222219e5db5222"} device-1 | {"level":"info","message":"GET /devices/c55a9716-5813-44be-a300-a5913aafc8b1? 200 13ms","method":"GET","requestID":"b47f3d9e4cdb523d2c222219e5db5222","responseTime":13,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.69496,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2f08ca0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"912ebdc1f11552b87c6f0c97608cdb50","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676021,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866674,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NH0.j8WRIaagHmMF9M6irC2D7VsKAgBOTXyymfk1AAfXfCg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"912ebdc1f11552b87c6f0c97608cdb50"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"17f5a4da-225a-41b2-be2f-7b77e7ec6ca6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.808497} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d4900a4-5c77-4023-9033-ecba4247e47f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.8088562} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:32.442384560Z"}]},"request_id":"7ec89f4f-e4af-48eb-9a01-a74c7159e33b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.809573} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2f08ca0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"912ebdc1f11552b87c6f0c97608cdb50"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0b7c80e2-356f-40e5-9c05-259dafbef631? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"912ebdc1f11552b87c6f0c97608cdb50"} device-1 | {"level":"info","message":"GET /devices/0b7c80e2-356f-40e5-9c05-259dafbef631? 200 15ms","method":"GET","requestID":"912ebdc1f11552b87c6f0c97608cdb50","responseTime":15,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"e2f08ca0-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c05ed76-0fa2-45e2-a2d8-f5d44d7871e3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.8711646} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.29644,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2fbb030-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling 200 8ms","method":"POST","requestID":"e2fbb030-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf842fa4-2d03-46f2-be24-7de76e121dce","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.8838212} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.465706,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2fd5de0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling 200 11ms","method":"POST","requestID":"e2fd5de0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f894907cb257ed8b288f3f046b7811d1","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"f894907cb257ed8b288f3f046b7811d1","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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":"f894907cb257ed8b288f3f046b7811d1"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","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/ccb65eb4-a08a-492e-b989-49f651cddb06' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"296d41d09b0946bd12d3cabc88bfca86","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccb65eb4-a08a-492e-b989-49f651cddb06","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1808b877-ce8b-4321-a385-07a5c5029b78","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866674.9662821} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.655646,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e30a0810-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06 200 10ms","method":"GET","requestID":"e30a0810-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"296d41d09b0946bd12d3cabc88bfca86","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"296d41d09b0946bd12d3cabc88bfca86"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06437879-5bbb-46a8-b427-3c4e538dd3d1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.0017607} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.954435,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e30f8650-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling 200 11ms","method":"POST","requestID":"e30f8650-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f9dec34-1ad5-492d-a3be-dbec89706ece","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.0155098} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.385566,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e311a930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling 200 10ms","method":"POST","requestID":"e311a930-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"948d9a97d4a84d3da87ee13f3ef279f6","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.36438,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866675,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"948d9a97d4a84d3da87ee13f3ef279f6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"} gateway-1 | {"time_local":"23/Apr/2024:10:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"948d9a97d4a84d3da87ee13f3ef279f6"} experiment-1 | {"level":"info","message":"GET /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e 200 18ms","method":"GET","requestID":"948d9a97d4a84d3da87ee13f3ef279f6","responseTime":18,"status":200,"url":"/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3ce58eb57c0f9ce1d3b1bcdc7205da1b","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.077937,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866675,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ce58eb57c0f9ce1d3b1bcdc7205da1b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.180912,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866675,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e33a18c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccb65eb4-a08a-492e-b989-49f651cddb06': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccb65eb4-a08a-492e-b989-49f651cddb06","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"cd5a1792-654a-4c81-953d-4c6956649674","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.2995782} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"49e8065e-ea9a-4bc1-bff2-0217ae04d952","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.2998717} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"81631a8028c793700d8408d9fed9a19b","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e33a18c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0241f9f773891f4a0353135cc83f8297","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ccb65eb4-a08a-492e-b989-49f651cddb06","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06 204 57ms","method":"DELETE","requestID":"e33a18c0-0158-11ef-926d-7f5be4425d00","responseTime":57,"status":204,"url":"/peerconnections/ccb65eb4-a08a-492e-b989-49f651cddb06"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc55a9716-5813-44be-a300-a5913aafc8b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8c264f2-7228-4e9a-a0ee-5617bd82d62c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.359225} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.738624,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e345d890-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling 200 14ms","method":"POST","requestID":"e345d890-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/c55a9716-5813-44be-a300-a5913aafc8b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc0afaf10-d90e-4b2a-be3c-b77fb859d22e': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc0afaf10-d90e-4b2a-be3c-b77fb859d22e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"d4cc0cdb-3c0a-4d6b-859b-835f97860afb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.3721454} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5938bdd0-ea6f-41a6-9483-2d8e8b31f86a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.3729382} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ce58eb57c0f9ce1d3b1bcdc7205da1b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b7c80e2-356f-40e5-9c05-259dafbef631","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26e3b536-5163-4bf2-bb04-f12384149b07","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.3793933} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.031972,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e34897b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling 200 15ms","method":"POST","requestID":"e34897b0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/0b7c80e2-356f-40e5-9c05-259dafbef631/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"} gateway-1 | {"time_local":"23/Apr/2024:10:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3ce58eb57c0f9ce1d3b1bcdc7205da1b"} experiment-1 | {"level":"info","message":"DELETE /experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e 204 189ms","method":"DELETE","requestID":"3ce58eb57c0f9ce1d3b1bcdc7205da1b","responseTime":189,"status":204,"url":"/experiments/c0afaf10-d90e-4b2a-be3c-b77fb859d22e"} gateway-1 | {"time_local":"23/Apr/2024:10:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1994","request_time":"2.425","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2c65fbc559c2fd864b5a18bf8df8e194"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"81631a8028c793700d8408d9fed9a19b","responseTime":146,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"0241f9f773891f4a0353135cc83f8297","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"81631a8028c793700d8408d9fed9a19b"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"0241f9f773891f4a0353135cc83f8297"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2715a837dd88c20886741900357c507d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1944","request_time":"0.943","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"18306810800247fd2a93c1b8bbbba307"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0b7c80e2-356f-40e5-9c05-259dafbef631' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.066155,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866675,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2715a837dd88c20886741900357c507d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c55a9716-5813-44be-a300-a5913aafc8b1' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"52495baf-5643-4770-b913-b7299e2af797","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.476212} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2715a837dd88c20886741900357c507d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d22bb8da-e637-45ba-95f9-1e3861c2bc46","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.4813786} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2715a837dd88c20886741900357c507d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"d4d790fc-2374-4899-adf5-093697966f8e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.4937527} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"561af09c-0442-4a36-8b0e-4152ac63b54d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.4939218} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2715a837dd88c20886741900357c507d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"9062f101-2124-4be2-8cd5-121f29332f7e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.5014858} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2715a837dd88c20886741900357c507d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2715a837dd88c20886741900357c507d"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"2715a837dd88c20886741900357c507d","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7c6bb183810ea5dd4506aec9e1b30aa0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.088413,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866675,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3NX0.gwzzx62jNJeQXJbk6xq-QE3pv2fG1waMISmsWz9hD94"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c6bb183810ea5dd4506aec9e1b30aa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0803fd23-6e0b-4750-ae89-9d93326655f9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.5346618} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c6bb183810ea5dd4506aec9e1b30aa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d0ffe32-9b67-4edc-aad5-7b8d49e76f4d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.5403666} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c6bb183810ea5dd4506aec9e1b30aa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"48743e4a-3f22-47d8-adc8-2aa4b05c95e6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.5500228} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db1a1095-9244-42ce-ade6-f264f6c79aa1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.5502236} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c6bb183810ea5dd4506aec9e1b30aa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.550006820Z"}]},"request_id":"f28afde5-dea8-4f7a-9485-54f339c35076","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866675.554281} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c6bb183810ea5dd4506aec9e1b30aa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"7c6bb183810ea5dd4506aec9e1b30aa0","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c6bb183810ea5dd4506aec9e1b30aa0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Nn0.TNiOP5rF0jtTLpVZa5XXAqVGstTCY-w717rGCuN8W3E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"042622cb88e24ffe736e1c1d4c53b41c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:36Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.850138,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866676,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Nn0.TNiOP5rF0jtTLpVZa5XXAqVGstTCY-w717rGCuN8W3E"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"042622cb88e24ffe736e1c1d4c53b41c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"007561d7-9ee4-4a63-8b30-2f3c98adf065","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866676.0421004} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"042622cb88e24ffe736e1c1d4c53b41c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a106056f-eec2-45f9-989e-8a492d626542","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866676.049914} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"042622cb88e24ffe736e1c1d4c53b41c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"42fcdbf2-57de-416a-b1f0-b8c731faeaf7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866676.0775316} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"042622cb88e24ffe736e1c1d4c53b41c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.060","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"042622cb88e24ffe736e1c1d4c53b41c"} device-1 | {"level":"info","message":"PATCH /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55 200 57ms","method":"PATCH","requestID":"042622cb88e24ffe736e1c1d4c53b41c","responseTime":57,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Nn0.TNiOP5rF0jtTLpVZa5XXAqVGstTCY-w717rGCuN8W3E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"301583ba44c4ef0975f044a73cb78d27","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:36Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.064624,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866676,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3Nn0.TNiOP5rF0jtTLpVZa5XXAqVGstTCY-w717rGCuN8W3E"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"301583ba44c4ef0975f044a73cb78d27"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.031","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"301583ba44c4ef0975f044a73cb78d27"} device-1 | {"level":"info","message":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/websocket 200 25ms","method":"POST","requestID":"301583ba44c4ef0975f044a73cb78d27","responseTime":25,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9dfba3401106c024e1eb534ca6b7ae19","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b6895380-2290-4b8d-9d97-4438a34e541d/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":"9dfba3401106c024e1eb534ca6b7ae19"} device-1 | {"level":"info","message":"OPTIONS /devices/b6895380-2290-4b8d-9d97-4438a34e541d/websocket 200 1ms","method":"OPTIONS","requestID":"9dfba3401106c024e1eb534ca6b7ae19","responseTime":1,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0ae809a7005cc18c4408e465cf6583a7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.597063,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0ae809a7005cc18c4408e465cf6583a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/websocket 200 54ms","method":"POST","requestID":"0ae809a7005cc18c4408e465cf6583a7","responseTime":54,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"0ae809a7005cc18c4408e465cf6583a7"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e1a5d25c0849ffadf263e7b36cea252c","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.275957,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e1a5d25c0849ffadf263e7b36cea252c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"b0109d49-eddd-4e34-9585-028dbdfb5c80","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.6437416} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e1a5d25c0849ffadf263e7b36cea252c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55? 200 19ms","method":"GET","requestID":"e1a5d25c0849ffadf263e7b36cea252c","responseTime":19,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e1a5d25c0849ffadf263e7b36cea252c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e179d56cfa292a6a07a9566dd97830e1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.378709,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e179d56cfa292a6a07a9566dd97830e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.550006820Z"}]},"request_id":"2e07a8cb-168c-401f-91cb-05bce8fb71a4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.6713507} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e179d56cfa292a6a07a9566dd97830e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b6895380-2290-4b8d-9d97-4438a34e541d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e179d56cfa292a6a07a9566dd97830e1"} device-1 | {"level":"info","message":"GET /devices/b6895380-2290-4b8d-9d97-4438a34e541d? 200 21ms","method":"GET","requestID":"e179d56cfa292a6a07a9566dd97830e1","responseTime":21,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8bc45737e8c210c217b925493f516501","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.182925,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8bc45737e8c210c217b925493f516501"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.772977,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4b19d90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.38198,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4b1ebb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"2fbb7d6a-ff66-47e7-b25d-b26aa20a526e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.7522316} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4b19d90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.550006820Z"}]},"request_id":"7a7857ea-2ed7-4afc-9927-1af4f01d7017","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.7537918} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4b1ebb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55? 200 25ms","method":"GET","requestID":"e4b19d90-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b6895380-2290-4b8d-9d97-4438a34e541d? 200 25ms","method":"GET","requestID":"e4b1ebb0-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883915,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4bf0b10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.16028,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4bf5930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.121139,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"51a4d1d8-3363-4b16-bc5c-debcaf5e2fa6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.841391} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"bc2300ea-fbba-4c4f-bd0c-a96a812d3d31","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.8415422} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4bf0b10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4bfa750-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.550006820Z"}]},"request_id":"6a104dab-83ac-4def-a9dd-0f76420b3781","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.8451273} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4bf5930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55? 200 27ms","method":"GET","requestID":"e4bf0b10-0158-11ef-926d-7f5be4425d00","responseTime":27,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling 200 28ms","method":"POST","requestID":"e4bfa750-0158-11ef-926d-7f5be4425d00","responseTime":28,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b6895380-2290-4b8d-9d97-4438a34e541d? 200 32ms","method":"GET","requestID":"e4bf5930-0158-11ef-926d-7f5be4425d00","responseTime":32,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6e5fa196-fd29-4179-bee1-fc1c0afcd6df#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6e5fa196-fd29-4179-bee1-fc1c0afcd6df","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"921d69ad-7494-4c84-8b88-10203c73e8d3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.860166} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1686708b-971a-4ec5-8a4b-17c994cf46c3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.8630502} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8bc45737e8c210c217b925493f516501"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8ca63d8-eb33-49fc-bf23-8906764cfb42","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.8672507} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.02352,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4c46240-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c6c01a29-164e-496b-8b19-4abfd26ba660","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.8729625} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.828033,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling 200 15ms","method":"POST","requestID":"e4c46240-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4c4d770-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8bc45737e8c210c217b925493f516501"} experiment-1 | {"level":"info","message":"POST /experiments? 201 191ms","method":"POST","requestID":"8bc45737e8c210c217b925493f516501","responseTime":191,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling 200 16ms","method":"POST","requestID":"e4c4d770-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c3ec21f497b5c9f98af3f38a549aa044","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d2ca5d4-3452-4f9a-a451-2b514cd36917","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.8864164} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.763775,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3ec21f497b5c9f98af3f38a549aa044"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.682053,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4c79690-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling 200 12ms","method":"POST","requestID":"e4c79690-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.493737560Z"}]},"request_id":"f764f704-e8ef-48cc-ada2-07f74aad630e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.893172} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"654c1090-274e-42ae-80c4-5be82dbc9f89"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"3d78f00e-9694-4d63-afba-746cc2840636"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"5a67a1da-a4b5-446e-83ae-3f8318346d90"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3ec21f497b5c9f98af3f38a549aa044"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c3ec21f497b5c9f98af3f38a549aa044"} device-1 | {"level":"info","message":"GET /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55? 200 17ms","method":"GET","requestID":"c3ec21f497b5c9f98af3f38a549aa044","responseTime":17,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.87984,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4ca0790-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e3550873872446eb1be8d90ff9eb8fe4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.752183,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866677,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3N30.bxXLU_Zzx06_u5ZTb3aTtVf6O1J1i-3C-O9uAhXjoY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3550873872446eb1be8d90ff9eb8fe4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:35.550006820Z"}]},"request_id":"69826bc4-e438-43a7-9c93-27d29ad3c639","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.9131653} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3550873872446eb1be8d90ff9eb8fe4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"044be8aa-7298-43d3-bf7c-40eea9d4905d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.9143434} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ac61a2a-1326-4c1d-81fc-c6174d159e8c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.914646} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4ca0790-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b6895380-2290-4b8d-9d97-4438a34e541d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3550873872446eb1be8d90ff9eb8fe4"} device-1 | {"level":"info","message":"GET /devices/b6895380-2290-4b8d-9d97-4438a34e541d? 200 14ms","method":"GET","requestID":"e3550873872446eb1be8d90ff9eb8fe4","responseTime":14,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"e4ca0790-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf868752-2c05-4d68-a2de-83e4b84addf9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866677.9911098} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.031452,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4d79c20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling 200 11ms","method":"POST","requestID":"e4d79c20-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:38Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae75f493-2fdb-4045-86d8-51db2705407c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866678.005528} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.824503,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4d9bf00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling 200 11ms","method":"POST","requestID":"e4d9bf00-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3d004f654e1b4d0c6af4500b8edc3f99","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"3d004f654e1b4d0c6af4500b8edc3f99","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"3d004f654e1b4d0c6af4500b8edc3f99"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","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/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"582026e3c3e5830bdbdf5d8a10b0deff","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0f7bcf4-5f01-4950-a6c1-f10d87524ea6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.099819} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.242515,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5808650-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3 200 12ms","method":"GET","requestID":"e5808650-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"582026e3c3e5830bdbdf5d8a10b0deff","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"582026e3c3e5830bdbdf5d8a10b0deff"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1726e58b-ed83-4714-8bc0-ce3a1b3beaa0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.1309717} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.033267,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5858f60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling 200 10ms","method":"POST","requestID":"e5858f60-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4e57a975-0e70-4cc2-ab89-78d14c13091d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.1434267} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.514628,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5876420-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling 200 11ms","method":"POST","requestID":"e5876420-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dd8d3cdaab549da0579c962f420f512f","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.69722,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866679,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8d3cdaab549da0579c962f420f512f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"} gateway-1 | {"time_local":"23/Apr/2024:10:04:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd8d3cdaab549da0579c962f420f512f"} experiment-1 | {"level":"info","message":"GET /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df 200 19ms","method":"GET","requestID":"dd8d3cdaab549da0579c962f420f512f","responseTime":19,"status":200,"url":"/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ef99ba12f447e91a61b1657c36120ea7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.934011,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866679,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef99ba12f447e91a61b1657c36120ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.295129,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866679,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5a65dd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"896bfee7340a821c0b83f7329676cb68","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"725c31f6-ac3b-4ee8-80f9-f60b6d9f10dc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.363004} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3309ccff-e058-482a-99f6-37468cf3bbe2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.363331} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a0b8f7e7be621664077019de49f87b19","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5a65dd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3 204 62ms","method":"DELETE","requestID":"e5a65dd0-0158-11ef-926d-7f5be4425d00","responseTime":62,"status":204,"url":"/peerconnections/0b3ea01a-1ebc-40ef-80b9-196a8da6a9a3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcad9f9bc-cecc-41e8-a633-cd7df3077a55","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de28201c-4659-4b75-9afc-1d803b3b04c5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.440992} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.017504,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5b46790-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling 200 16ms","method":"POST","requestID":"e5b46790-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6e5fa196-fd29-4179-bee1-fc1c0afcd6df': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6e5fa196-fd29-4179-bee1-fc1c0afcd6df","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"7f3145be-7b93-4010-acd6-094d27640caf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.4526534} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdba74fb-3b45-4726-89c3-e20e115cf1bd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.4532533} authorization-1 | {"level":"info","message":"POST /relations/update 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef99ba12f447e91a61b1657c36120ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6895380-2290-4b8d-9d97-4438a34e541d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91510a18-9a03-4623-8afa-1834dec4d610","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.4593666} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.690629,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5b74dc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling 200 14ms","method":"POST","requestID":"e5b74dc0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/b6895380-2290-4b8d-9d97-4438a34e541d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"} gateway-1 | {"time_local":"23/Apr/2024:10:04:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef99ba12f447e91a61b1657c36120ea7"} gateway-1 | {"time_local":"23/Apr/2024:10:04:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2177","request_time":"3.398","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ecbff744ecac51e805659d38c41e7086"} experiment-1 | {"level":"info","message":"DELETE /experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df 204 194ms","method":"DELETE","requestID":"ef99ba12f447e91a61b1657c36120ea7","responseTime":194,"status":204,"url":"/experiments/6e5fa196-fd29-4179-bee1-fc1c0afcd6df"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 155ms","method":"POST","requestID":"896bfee7340a821c0b83f7329676cb68","responseTime":155,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"896bfee7340a821c0b83f7329676cb68"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"a0b8f7e7be621664077019de49f87b19","responseTime":154,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"a0b8f7e7be621664077019de49f87b19"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"af1c4316d359ac0c2dbbbe830429ec6e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1939","request_time":"1.964","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b518cf06df35c5b8d6e131d598c7abf1"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cad9f9bc-cecc-41e8-a633-cd7df3077a55' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.85616,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866679,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af1c4316d359ac0c2dbbbe830429ec6e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b6895380-2290-4b8d-9d97-4438a34e541d' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"88182de1-6f51-4a74-998e-14f1aba00b32","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.5416028} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af1c4316d359ac0c2dbbbe830429ec6e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a80e0bf8-9acd-4177-835e-9ce46bd1fb94","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.5483103} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af1c4316d359ac0c2dbbbe830429ec6e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7e0a994e-6080-4fd5-a9e8-0d5a7eb696ce","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.557461} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b2e08ee-e36c-43e6-9ef7-e5cc9c0dcc35","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.5577536} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af1c4316d359ac0c2dbbbe830429ec6e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"6531fd52-0635-47af-a5bc-7495f84c5a1c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.5644283} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af1c4316d359ac0c2dbbbe830429ec6e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af1c4316d359ac0c2dbbbe830429ec6e"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"af1c4316d359ac0c2dbbbe830429ec6e","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e8be2713af90fef9c0d7b64411398973","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.78347,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866679,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY3OX0.709ULwjaZQ-HCBnqGyLaeHoSbSAdnxm05RXdzvYrf28"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8be2713af90fef9c0d7b64411398973"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f27f37ed-1e21-4025-8a63-d3534a3b30ae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.5985534} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8be2713af90fef9c0d7b64411398973"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd68d634-fee8-48a0-a107-c37e3edfe546","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.6042616} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8be2713af90fef9c0d7b64411398973"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"b443c18f-a7ec-4a2f-a234-5245b30ad9fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.614363} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e8d98f0-1ea7-4737-ae6f-9e0f367fd8d7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.61452} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8be2713af90fef9c0d7b64411398973"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"8f8c000a-d539-4e7a-a836-0f86fb83f22c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866679.6193464} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8be2713af90fef9c0d7b64411398973"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e8be2713af90fef9c0d7b64411398973"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"e8be2713af90fef9c0d7b64411398973","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d5653a5abe48bbfe5df7e67dfb2772a3","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"df36b7dec60d0679cd9a74786af9f618","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.630227,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5653a5abe48bbfe5df7e67dfb2772a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.615652,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df36b7dec60d0679cd9a74786af9f618"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"1272290e-7d0f-44a4-8f18-a4e2d1c0bffa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.100304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5653a5abe48bbfe5df7e67dfb2772a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"6aef9053-44c9-4c66-9ad6-64b517c5c5ee","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.1010728} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df36b7dec60d0679cd9a74786af9f618"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2eab2f68-3bf4-44af-9cfb-5888a898f808","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.10554} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5653a5abe48bbfe5df7e67dfb2772a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4a13165-6c81-4316-ac05-07f2000f22a4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.107192} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df36b7dec60d0679cd9a74786af9f618"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"9ee24fbb-51d5-4f2e-ac0f-33723ad10519","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.1105282} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df36b7dec60d0679cd9a74786af9f618"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"df36b7dec60d0679cd9a74786af9f618"} device-1 | {"level":"info","message":"PATCH /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335 200 23ms","method":"PATCH","requestID":"df36b7dec60d0679cd9a74786af9f618","responseTime":23,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e6fa3700400c30bb4a3f77a764ffb3d8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.842277,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6fa3700400c30bb4a3f77a764ffb3d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"5e82ced7-6493-4366-9639-7f412e377963","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.13977} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5653a5abe48bbfe5df7e67dfb2772a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/14691451-530f-419f-9f19-e12a181c8ac5 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.061","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d5653a5abe48bbfe5df7e67dfb2772a3"} device-1 | {"level":"info","message":"PATCH /devices/14691451-530f-419f-9f19-e12a181c8ac5 200 55ms","method":"PATCH","requestID":"d5653a5abe48bbfe5df7e67dfb2772a3","responseTime":55,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f21fd2d7480f4a45fec5636ca0c6630c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.036","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e6fa3700400c30bb4a3f77a764ffb3d8"} device-1 | {"level":"info","message":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/websocket 200 30ms","method":"POST","requestID":"e6fa3700400c30bb4a3f77a764ffb3d8","responseTime":30,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.927238,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f21fd2d7480f4a45fec5636ca0c6630c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f21fd2d7480f4a45fec5636ca0c6630c"} device-1 | {"level":"info","message":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/websocket 200 23ms","method":"POST","requestID":"f21fd2d7480f4a45fec5636ca0c6630c","responseTime":23,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c416d8d3ef3609614e3baaa40dd03c4f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.806962,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c416d8d3ef3609614e3baaa40dd03c4f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"a28c81e2-5415-4c3a-8a86-304d9f8448da","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.2002318} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c416d8d3ef3609614e3baaa40dd03c4f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/14691451-530f-419f-9f19-e12a181c8ac5? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c416d8d3ef3609614e3baaa40dd03c4f"} device-1 | {"level":"info","message":"GET /devices/14691451-530f-419f-9f19-e12a181c8ac5? 200 12ms","method":"GET","requestID":"c416d8d3ef3609614e3baaa40dd03c4f","responseTime":12,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"06dfe35cacac2b19486cfbaf3a75e07b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.946469,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06dfe35cacac2b19486cfbaf3a75e07b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"a226b08f-54c7-4f37-a24b-33a632d0872d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.2162185} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06dfe35cacac2b19486cfbaf3a75e07b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"06dfe35cacac2b19486cfbaf3a75e07b"} device-1 | {"level":"info","message":"GET /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335? 200 12ms","method":"GET","requestID":"06dfe35cacac2b19486cfbaf3a75e07b","responseTime":12,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"58148260c01b55f5f588d06c0dc4b3f4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.918247,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58148260c01b55f5f588d06c0dc4b3f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.023233,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e635f3a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.753713,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e63641c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"1bcbf53c-3e75-4359-89f3-f6a6cc59e8ab","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.2907884} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e635f3a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"b4c687c2-32e4-4f21-8dd9-1541ea694063","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.291474} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e63641c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/14691451-530f-419f-9f19-e12a181c8ac5? 200 17ms","method":"GET","requestID":"e635f3a0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335? 200 17ms","method":"GET","requestID":"e63641c0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.962365,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6416550-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.822585,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e641da80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"5eaedf7c-1193-463a-98b3-26412a3378ac","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.3699505} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6416550-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"5a75c7c4-5e23-47b2-932f-647bd03d7295","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.3710911} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f973899-ba30-43fe-87bd-8d4ef9a36c6a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.3718083} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e641da80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.509568,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6420190-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/14691451-530f-419f-9f19-e12a181c8ac5? 200 20ms","method":"GET","requestID":"e6416550-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb88ec85c-7f21-49bb-a861-26b4c30bb704#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb88ec85c-7f21-49bb-a861-26b4c30bb704","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"f8075759-696c-45c6-9ab5-f62ba537f0c4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.3779666} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d620deb-8e92-4a43-b208-07e4094f7545","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.378162} device-1 | {"level":"info","message":"GET /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335? 200 18ms","method":"GET","requestID":"e641da80-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling 200 18ms","method":"POST","requestID":"e6420190-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58148260c01b55f5f588d06c0dc4b3f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"280eabe0-b7c0-417d-ace8-9e77a1f2709d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.3861399} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.65537,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6450ed0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26c7cf7f-1e00-4b4d-b6ed-39eb7ea01056","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.3874078} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.445247,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"58148260c01b55f5f588d06c0dc4b3f4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 165ms","method":"POST","requestID":"58148260c01b55f5f588d06c0dc4b3f4","responseTime":165,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e64535e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling 200 13ms","method":"POST","requestID":"e6450ed0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"256f86ab11e3089082fb56157c9d8cde","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling 200 14ms","method":"POST","requestID":"e64535e0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd68617e-fb37-4874-9fff-ddeca1396931","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.4014914} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.722038,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"256f86ab11e3089082fb56157c9d8cde"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.793386,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e64758c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.557436315Z"}]},"request_id":"08486cf3-4e31-479a-a30a-6f00017ffc36","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.4077055} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling 200 13ms","method":"POST","requestID":"e64758c0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"256f86ab11e3089082fb56157c9d8cde"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"11e4e1c9-e007-4f35-bb9c-75fd9178930d"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"6175bfd5-d25f-44ae-bbba-ae6799ab7003"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"7c51f720-f5d9-4509-83ce-cc28963f8c7c"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/14691451-530f-419f-9f19-e12a181c8ac5? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"256f86ab11e3089082fb56157c9d8cde"} device-1 | {"level":"info","message":"GET /devices/14691451-530f-419f-9f19-e12a181c8ac5? 200 16ms","method":"GET","requestID":"256f86ab11e3089082fb56157c9d8cde","responseTime":16,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.701531,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e649c9c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"17879df37d771098ea662697e324a325","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686199,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"17879df37d771098ea662697e324a325"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:39.614346322Z"}]},"request_id":"3ec295c4-1be2-496e-9ed7-18855f700def","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.4267383} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"17879df37d771098ea662697e324a325"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9f0bd7ce-3d91-4932-8c48-12a29c6ec277","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.427844} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40294cc5-ed15-4039-96da-16083202f0ac","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.4281526} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e649c9c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335? 200 13ms","method":"GET","requestID":"17879df37d771098ea662697e324a325","responseTime":13,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"17879df37d771098ea662697e324a325"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 40ms","method":"POST","requestID":"e649c9c0-0158-11ef-926d-7f5be4425d00","responseTime":40,"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"} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"56d4b9f70b3aa3d9ddc75c573e87fe47","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"56d4b9f70b3aa3d9ddc75c573e87fe47","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +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":"56d4b9f70b3aa3d9ddc75c573e87fe47"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97da06e4-d10c-4b27-8938-18066671785a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.4932504} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.755192,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6556280-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling 200 11ms","method":"POST","requestID":"e6556280-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ac9b62b-1f16-4ac2-b5d3-1cf078a54c66","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.5066156} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.151744,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6578560-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling 200 9ms","method":"POST","requestID":"e6578560-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling"} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","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/bc4542e0-6580-4565-9df3-39488b4acfec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b151f38ec782b70d704da8c638f4796c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbc4542e0-6580-4565-9df3-39488b4acfec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"23cbe66e-ef86-4611-978b-b90c7b92bb6f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.5374105} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.718037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e65c4050-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec 200 9ms","method":"GET","requestID":"e65c4050-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"b151f38ec782b70d704da8c638f4796c","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +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.038","http_referrer":"","http_user_agent":"node-fetch","requestID":"b151f38ec782b70d704da8c638f4796c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59c3766b-2f17-4cb8-9d16-9722acb0dfec","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.5663137} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.254673,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e660ad20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling 200 10ms","method":"POST","requestID":"e660ad20-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eddca122-cd15-4b3e-96bd-427d6dc85590","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.578829} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.399759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e66281e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling 200 9ms","method":"POST","requestID":"e66281e0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4c1fbce27735d3d52b4f7dc19648921a","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.259264,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c1fbce27735d3d52b4f7dc19648921a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704 HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c1fbce27735d3d52b4f7dc19648921a"} experiment-1 | {"level":"info","message":"GET /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704 200 16ms","method":"GET","requestID":"4c1fbce27735d3d52b4f7dc19648921a","responseTime":16,"status":200,"url":"/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"621bd3096e3609596cec45e34ddf2697","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.350193,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"621bd3096e3609596cec45e34ddf2697"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.470816,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e67f58b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bc4542e0-6580-4565-9df3-39488b4acfec","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbc4542e0-6580-4565-9df3-39488b4acfec': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbc4542e0-6580-4565-9df3-39488b4acfec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"7f4cdb6a-4819-403d-802f-7167727ceb14","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.7850864} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24d31069-bbb5-4239-afc3-d5b0e6979760","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.785271} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"237fc35ff9b50a26534bd6178f32015d","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e67f58b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7e7f3c4b70786a725750928a49a6f8eb","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec 204 48ms","method":"DELETE","requestID":"e67f58b0-0158-11ef-926d-7f5be4425d00","responseTime":48,"status":204,"url":"/peerconnections/bc4542e0-6580-4565-9df3-39488b4acfec"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88b7b32a-6a81-4d84-beaa-261b9b2ec335","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a1c96230-8e88-47e3-8fad-4e17bb80c592","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.835616} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.205813,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e68943c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling 200 16ms","method":"POST","requestID":"e68943c0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb88ec85c-7f21-49bb-a861-26b4c30bb704': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb88ec85c-7f21-49bb-a861-26b4c30bb704","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"8a11a045-cab3-420c-bc9b-ef13d529bb11","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.847695} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c5e71f1-d727-43ed-8435-c794244519c9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.8481069} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"621bd3096e3609596cec45e34ddf2697"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14691451-530f-419f-9f19-e12a181c8ac5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ccfeee69-270b-4cfb-88a0-95fae0b74695","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.8536837} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.749117,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14691451-530f-419f-9f19-e12a181c8ac5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e68c29f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling 200 12ms","method":"POST","requestID":"e68c29f0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/14691451-530f-419f-9f19-e12a181c8ac5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"621bd3096e3609596cec45e34ddf2697"} experiment-1 | {"level":"info","message":"DELETE /experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704 204 164ms","method":"DELETE","requestID":"621bd3096e3609596cec45e34ddf2697","responseTime":164,"status":204,"url":"/experiments/b88ec85c-7f21-49bb-a861-26b4c30bb704"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1944","request_time":"0.758","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cc58e9580ee57415df9ed0969c045a48"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1944","request_time":"0.734","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3af6ed70693f901e167c0281568ed65e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 124ms","method":"POST","requestID":"237fc35ff9b50a26534bd6178f32015d","responseTime":124,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +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.127","http_referrer":"","http_user_agent":"node-fetch","requestID":"237fc35ff9b50a26534bd6178f32015d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 124ms","method":"POST","requestID":"7e7f3c4b70786a725750928a49a6f8eb","responseTime":124,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +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.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"7e7f3c4b70786a725750928a49a6f8eb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2a187cb82017bbdcccd4f30e81938df1","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/14691451-530f-419f-9f19-e12a181c8ac5' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.941562,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a187cb82017bbdcccd4f30e81938df1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/88b7b32a-6a81-4d84-beaa-261b9b2ec335' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"64933ac3-ffa1-4e46-8e86-a3b4aabda0d4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.939335} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a187cb82017bbdcccd4f30e81938df1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"603594f7-e093-4336-a862-53f2fb377718","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.9464884} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a187cb82017bbdcccd4f30e81938df1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"92457894-8281-42c7-96a2-1c38811c113d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.9567928} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aba5aea0-d4a2-470b-941f-5605a481050f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.95691} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a187cb82017bbdcccd4f30e81938df1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:40.956772892Z"}]},"request_id":"7e68329c-dd01-4d8d-a3f1-9c40a93520a3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.9629006} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a187cb82017bbdcccd4f30e81938df1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a187cb82017bbdcccd4f30e81938df1"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"2a187cb82017bbdcccd4f30e81938df1","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"24b61c2ca27f9d5c59e0de805af7fb2e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.951808,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866680,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4MH0.XZ6PFchq--6YwujzpmVZftZCNvZ0PrhBXW_pV9HD2n8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24b61c2ca27f9d5c59e0de805af7fb2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a5bf7dbc-b3c2-4b1a-a6fb-0c615d446987","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.9933488} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24b61c2ca27f9d5c59e0de805af7fb2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2cc36ca9-d7b9-49fd-9909-528a82f2ece8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866680.9992886} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24b61c2ca27f9d5c59e0de805af7fb2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"4aba8556-168b-4b05-9b5a-38cf3452cf41","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866681.010312} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5bc2982-a25e-44b2-8917-29a28c7d0dda","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866681.0104778} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24b61c2ca27f9d5c59e0de805af7fb2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:41.010283733Z"}]},"request_id":"73796256-f159-4966-886e-9bf5fa12a51a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866681.0157967} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24b61c2ca27f9d5c59e0de805af7fb2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"24b61c2ca27f9d5c59e0de805af7fb2e","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"24b61c2ca27f9d5c59e0de805af7fb2e"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c46290ffd99492189dacae121b250011","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/338fe588-2981-45ec-8431-98a8aaf9e152/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":"c46290ffd99492189dacae121b250011"} device-1 | {"level":"info","message":"OPTIONS /devices/338fe588-2981-45ec-8431-98a8aaf9e152/websocket 200 1ms","method":"OPTIONS","requestID":"c46290ffd99492189dacae121b250011","responseTime":1,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Mn0.o5ELPnWJbZmfsB-FSd_S4uBEp7ZAjQuziujc7jzidm8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"84908a6f85d72b2034541564dbfc63bd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:42Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.709971,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866682,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Mn0.o5ELPnWJbZmfsB-FSd_S4uBEp7ZAjQuziujc7jzidm8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84908a6f85d72b2034541564dbfc63bd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9290cbc804c04575e5f75fbfff167117","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/20c4f79c-e51b-4391-9145-3adac91052b9/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":"9290cbc804c04575e5f75fbfff167117"} device-1 | {"level":"info","message":"OPTIONS /devices/20c4f79c-e51b-4391-9145-3adac91052b9/websocket 200 1ms","method":"OPTIONS","requestID":"9290cbc804c04575e5f75fbfff167117","responseTime":1,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/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":"84908a6f85d72b2034541564dbfc63bd"} device-1 | {"level":"info","message":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/websocket 200 27ms","method":"POST","requestID":"84908a6f85d72b2034541564dbfc63bd","responseTime":27,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b188885b3955206cb44f7ca5fed4306a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.99285,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b188885b3955206cb44f7ca5fed4306a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/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":"b188885b3955206cb44f7ca5fed4306a"} device-1 | {"level":"info","message":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/websocket 200 23ms","method":"POST","requestID":"b188885b3955206cb44f7ca5fed4306a","responseTime":23,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"57b1a2140a3f1e92a6476c843b5c6ac4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.848395,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57b1a2140a3f1e92a6476c843b5c6ac4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:40.956772892Z"}]},"request_id":"be200adc-be91-4a2d-9823-817a0c6b6c11","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.0660765} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57b1a2140a3f1e92a6476c843b5c6ac4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/338fe588-2981-45ec-8431-98a8aaf9e152? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"57b1a2140a3f1e92a6476c843b5c6ac4"} device-1 | {"level":"info","message":"GET /devices/338fe588-2981-45ec-8431-98a8aaf9e152? 200 15ms","method":"GET","requestID":"57b1a2140a3f1e92a6476c843b5c6ac4","responseTime":15,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"02c1e38d24ce9b52656d472c5b341b14","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.002214,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02c1e38d24ce9b52656d472c5b341b14"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:41.010283733Z"}]},"request_id":"85ebf1ed-b41e-41e7-9fe5-86b501dc173b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.0862453} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02c1e38d24ce9b52656d472c5b341b14"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/20c4f79c-e51b-4391-9145-3adac91052b9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02c1e38d24ce9b52656d472c5b341b14"} device-1 | {"level":"info","message":"GET /devices/20c4f79c-e51b-4391-9145-3adac91052b9? 200 16ms","method":"GET","requestID":"02c1e38d24ce9b52656d472c5b341b14","responseTime":16,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1da60bda7cb44fa1df36b0c1fa94bb04","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.102421,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1da60bda7cb44fa1df36b0c1fa94bb04"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.605162,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7edb5c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.97136,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7ee03e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:40.956772892Z"}]},"request_id":"a498ee92-7f5f-4461-89d0-f027d3bba56f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.1752079} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7edb5c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:41.010283733Z"}]},"request_id":"5bb18aba-2459-4d89-a997-62f9c68f7451","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.1761322} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7ee03e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/338fe588-2981-45ec-8431-98a8aaf9e152? 200 19ms","method":"GET","requestID":"e7edb5c0-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/20c4f79c-e51b-4391-9145-3adac91052b9? 200 19ms","method":"GET","requestID":"e7ee03e0-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.358781,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7f92770-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.18979,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7f97590-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.493507,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2584ad56-0459-4869-ab1c-b1decc4660ba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.253451} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7f9c3b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:40.956772892Z"}]},"request_id":"3876a79b-2837-45ba-9f5d-a00bd559f08a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.258704} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling 200 22ms","method":"POST","requestID":"e7f9c3b0-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7f92770-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:41.010283733Z"}]},"request_id":"3d57a5f1-b335-490d-8afb-7657b3f0c7d1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.2653773} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7f97590-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe865e1be-2a8c-4df6-b6fb-7c199c921301#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe865e1be-2a8c-4df6-b6fb-7c199c921301","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"3a933b13-6cea-4228-8b61-8caba6e78b9f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.2723615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"faa803c5-e9c1-4ab4-8bf7-cf16abf0bf79","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.2724845} device-1 | {"level":"info","message":"GET /devices/338fe588-2981-45ec-8431-98a8aaf9e152? 200 35ms","method":"GET","requestID":"e7f92770-0158-11ef-926d-7f5be4425d00","responseTime":35,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/20c4f79c-e51b-4391-9145-3adac91052b9? 200 34ms","method":"GET","requestID":"e7f97590-0158-11ef-926d-7f5be4425d00","responseTime":34,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 23ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1da60bda7cb44fa1df36b0c1fa94bb04"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5fc2d4b7-a06e-4854-8fe6-fb15180289d3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.276059} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.681305,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7fdbb50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling 200 15ms","method":"POST","requestID":"e7fdbb50-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"688eea0e-9a04-4689-a97e-a2c4487f4fb8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.2844076} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.048924,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","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":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1da60bda7cb44fa1df36b0c1fa94bb04"} experiment-1 | {"level":"info","message":"POST /experiments? 201 189ms","method":"POST","requestID":"1da60bda7cb44fa1df36b0c1fa94bb04","responseTime":189,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7ff1ae0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling 200 12ms","method":"POST","requestID":"e7ff1ae0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"972e730d7a535507f4f5f07f241f8d2e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"167e1c87-2cec-4288-8942-1ce5420b7ee6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.2982075} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.808207,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"972e730d7a535507f4f5f07f241f8d2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.582362,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8013dc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:40.956772892Z"}]},"request_id":"f8489bce-bf8c-4ae3-8d5e-b6a1c3fc01e7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.3057678} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling 200 14ms","method":"POST","requestID":"e8013dc0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"972e730d7a535507f4f5f07f241f8d2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Building connection plan"} 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":"dbb28ab1-8eee-404e-be92-f5a4102240cd"},{"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":"5bc006d3-4f5d-4eca-a40e-d9e320196f5a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"106f53ca-3375-4382-9578-284ae672548f"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/338fe588-2981-45ec-8431-98a8aaf9e152? 200 17ms","method":"GET","requestID":"972e730d7a535507f4f5f07f241f8d2e","responseTime":17,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/338fe588-2981-45ec-8431-98a8aaf9e152? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"972e730d7a535507f4f5f07f241f8d2e"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.702782,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e803d5d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"675f461c9e112e60204da37ce129c427","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.860408,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"675f461c9e112e60204da37ce129c427"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"c0c28199-5e8b-4cca-8d73-f28fcaf426d3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.3251436} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a17a6e0-4faa-410f-883a-88296b189eca","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.3254669} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e803d5d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:41.010283733Z"}]},"request_id":"df9d3a33-452e-4398-9cdd-e2ac159f3f9c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.3291059} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"675f461c9e112e60204da37ce129c427"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/20c4f79c-e51b-4391-9145-3adac91052b9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"675f461c9e112e60204da37ce129c427"} device-1 | {"level":"info","message":"GET /devices/20c4f79c-e51b-4391-9145-3adac91052b9? 200 18ms","method":"GET","requestID":"675f461c9e112e60204da37ce129c427","responseTime":18,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"e803d5d0-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"29372419-a3b2-441a-8372-39937c5be3e2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.399815} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.567614,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e810f530-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling 200 10ms","method":"POST","requestID":"e810f530-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"faf341e1-6041-4b8a-a0e8-18c453f7e031","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.4113595} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.933969,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e812c9f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling 200 9ms","method":"POST","requestID":"e812c9f0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"37dd9833e65b2e6e62f77704d91e831d","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"37dd9833e65b2e6e62f77704d91e831d","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +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":"37dd9833e65b2e6e62f77704d91e831d"} device-1 | {"data":{"peerconnection":"68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","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/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"121a498a11c5dd8cb04642bf78066d61","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9dcbae26-e41d-44de-b13f-6bcd31a49263","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.6482778} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.78957,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e836a5a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d 200 12ms","method":"GET","requestID":"e836a5a0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"121a498a11c5dd8cb04642bf78066d61","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +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":"121a498a11c5dd8cb04642bf78066d61"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"72e9339c-ced3-4e04-890c-7c6efa3709d1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.6791103} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.349876,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e83b6090-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling 200 13ms","method":"POST","requestID":"e83b6090-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7fb2885a-7c95-4df3-a7d8-f7535ec65d4c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.6955845} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.340275,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e83daa80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling 200 15ms","method":"POST","requestID":"e83daa80-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ff43216f83920dea090bbae07a4f26fe","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.315501,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff43216f83920dea090bbae07a4f26fe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"} experiment-1 | {"level":"info","message":"GET /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301 200 18ms","method":"GET","requestID":"ff43216f83920dea090bbae07a4f26fe","responseTime":18,"status":200,"url":"/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff43216f83920dea090bbae07a4f26fe"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"32f4c28e139c0cd75e7ffea1888f0e68","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.166029,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"32f4c28e139c0cd75e7ffea1888f0e68"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.46826,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e84d13d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"4d909f32-c9f2-4f6b-9208-a0b07ba282f4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.8138747} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d5606c9d-64aa-4b8f-8cbb-14309210008e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.8142219} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3c257056ccfec8197517990fa39b73ac","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e84d13d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"20859a8de001230052fc6969a9fde8aa","responseTime":3,"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d 204 71ms","method":"DELETE","requestID":"e84d13d0-0158-11ef-926d-7f5be4425d00","responseTime":71,"status":204,"url":"/peerconnections/68f54f2a-c4cd-4b51-83c4-d85cd0c45a8d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20c4f79c-e51b-4391-9145-3adac91052b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06083fda-26b0-4720-bbcf-e93c47682c58","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.8934202} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.97958,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e85bb9d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling 200 17ms","method":"POST","requestID":"e85bb9d0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/20c4f79c-e51b-4391-9145-3adac91052b9/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe865e1be-2a8c-4df6-b6fb-7c199c921301': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe865e1be-2a8c-4df6-b6fb-7c199c921301","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"903200f8-e6ad-412b-b439-4c7dab7c8e6c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.9036741} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1387a0f8-cf4d-47b6-98b0-c4fb6c0020cb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.904138} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"32f4c28e139c0cd75e7ffea1888f0e68"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F338fe588-2981-45ec-8431-98a8aaf9e152","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04b7360e-6843-45cd-9831-31a251d38285","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866683.913001} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.286291,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e85ec710-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling 200 16ms","method":"POST","requestID":"e85ec710-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/338fe588-2981-45ec-8431-98a8aaf9e152/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.217","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"32f4c28e139c0cd75e7ffea1888f0e68"} experiment-1 | {"level":"info","message":"DELETE /experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301 204 214ms","method":"DELETE","requestID":"32f4c28e139c0cd75e7ffea1888f0e68","responseTime":214,"status":204,"url":"/experiments/e865e1be-2a8c-4df6-b6fb-7c199c921301"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 169ms","method":"POST","requestID":"3c257056ccfec8197517990fa39b73ac","responseTime":169,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +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.176","http_referrer":"","http_user_agent":"node-fetch","requestID":"3c257056ccfec8197517990fa39b73ac"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 167ms","method":"POST","requestID":"20859a8de001230052fc6969a9fde8aa","responseTime":167,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +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":"20859a8de001230052fc6969a9fde8aa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d1b142c2bd94cd06bcdf0c5ff0a5009f","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2434","request_time":"0.956","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4d92261fa062b0b6f495fa3886157a7f"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2301","request_time":"0.986","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"76648a58e8e5ef858803672884ba5029"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.976676,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866683,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4M30.QcpKnmhSq9E8C1J_D8DkgRaaa1wGp_ZsA_7yblVC-sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1b142c2bd94cd06bcdf0c5ff0a5009f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/20c4f79c-e51b-4391-9145-3adac91052b9' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"15a502d8-9dd2-4fe5-8caf-6c0f0de13aea","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0061493} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1b142c2bd94cd06bcdf0c5ff0a5009f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/338fe588-2981-45ec-8431-98a8aaf9e152' 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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fceb716f-1d46-4d6d-b2a6-ead271177ed9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0111182} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1b142c2bd94cd06bcdf0c5ff0a5009f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"fe0e1bc3-e334-4d70-befa-30fe955cd359","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0255034} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1eefaee6-3658-4da1-b812-d7e0de805147","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.025754} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1b142c2bd94cd06bcdf0c5ff0a5009f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.025482580Z"}]},"request_id":"ece258c3-7436-4f63-8312-bed6627e05bf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0301178} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1b142c2bd94cd06bcdf0c5ff0a5009f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"d1b142c2bd94cd06bcdf0c5ff0a5009f","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d1b142c2bd94cd06bcdf0c5ff0a5009f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4NH0.X3FETn6IDLf5cj5hDZfatQi76EnmRbdsLeSh0rn6v9A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1f8438d21e5ef848c8549a2c47faa7a1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:44Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.679195,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866684,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4NH0.X3FETn6IDLf5cj5hDZfatQi76EnmRbdsLeSh0rn6v9A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f8438d21e5ef848c8549a2c47faa7a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"639401f9-35ce-46d8-b0e4-346ad749b161","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0561075} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f8438d21e5ef848c8549a2c47faa7a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbb5ea76-6267-4c47-9985-f9aa0890bdff","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0610516} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f8438d21e5ef848c8549a2c47faa7a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ee0f8846-fc18-4d62-81f7-28b13bc9303b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0701904} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f97b8eb3-39fe-43ca-8a08-882b1fef4c99","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0703042} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f8438d21e5ef848c8549a2c47faa7a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.070160051Z"}]},"request_id":"e737b708-3f3b-4b1c-934b-a39b627b66f8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866684.0750697} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f8438d21e5ef848c8549a2c47faa7a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"1f8438d21e5ef848c8549a2c47faa7a1","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f8438d21e5ef848c8549a2c47faa7a1"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b211759c45ea2322695b68ee04c3eb51","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1da15291-4722-4abd-95f7-de7029d7d80a/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":"b211759c45ea2322695b68ee04c3eb51"} device-1 | {"level":"info","message":"OPTIONS /devices/1da15291-4722-4abd-95f7-de7029d7d80a/websocket 200 1ms","method":"OPTIONS","requestID":"b211759c45ea2322695b68ee04c3eb51","responseTime":1,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"60ccba4232f6d9f2b9e8376ab599aa77","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.231144,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"60ccba4232f6d9f2b9e8376ab599aa77"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d8e1f8728978c67bed93325a790b365d","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7ec76535-210d-4570-bc36-bac297f55e38/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":"d8e1f8728978c67bed93325a790b365d"} device-1 | {"level":"info","message":"OPTIONS /devices/7ec76535-210d-4570-bc36-bac297f55e38/websocket 200 1ms","method":"OPTIONS","requestID":"d8e1f8728978c67bed93325a790b365d","responseTime":1,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"631932a52c7dd14496207e38d57c0029","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.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":"60ccba4232f6d9f2b9e8376ab599aa77"} device-1 | {"level":"info","message":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/websocket 200 33ms","method":"POST","requestID":"60ccba4232f6d9f2b9e8376ab599aa77","responseTime":33,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.380892,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"631932a52c7dd14496207e38d57c0029"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/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":"631932a52c7dd14496207e38d57c0029"} device-1 | {"level":"info","message":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/websocket 200 26ms","method":"POST","requestID":"631932a52c7dd14496207e38d57c0029","responseTime":26,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"624268f41f00ad80e1ec467bcdf9b47a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669216,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"624268f41f00ad80e1ec467bcdf9b47a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.025482580Z"}]},"request_id":"31cbfcd1-7e45-4aa5-bf88-2b8ab54169e8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.1011128} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"624268f41f00ad80e1ec467bcdf9b47a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1da15291-4722-4abd-95f7-de7029d7d80a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"624268f41f00ad80e1ec467bcdf9b47a"} device-1 | {"level":"info","message":"GET /devices/1da15291-4722-4abd-95f7-de7029d7d80a? 200 20ms","method":"GET","requestID":"624268f41f00ad80e1ec467bcdf9b47a","responseTime":20,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2bfa5b89128ca828144ac96a4c4558f8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.317962,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2bfa5b89128ca828144ac96a4c4558f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.070160051Z"}]},"request_id":"34db218a-d0ea-4329-99e2-935409ef5c5b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.1263292} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2bfa5b89128ca828144ac96a4c4558f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7ec76535-210d-4570-bc36-bac297f55e38? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2bfa5b89128ca828144ac96a4c4558f8"} device-1 | {"level":"info","message":"GET /devices/7ec76535-210d-4570-bc36-bac297f55e38? 200 23ms","method":"GET","requestID":"2bfa5b89128ca828144ac96a4c4558f8","responseTime":23,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"22923f22ad53b96d52eeaff28ee33dd2","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.05231,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22923f22ad53b96d52eeaff28ee33dd2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.39342,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9bd6cb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738721,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9bdbad0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.025482580Z"}]},"request_id":"c15b1540-6686-40e6-9efd-514916ef4be3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.21547} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9bd6cb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.070160051Z"}]},"request_id":"62bf0704-4302-488e-aa5b-ce07a52d377c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.2167778} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9bdbad0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1da15291-4722-4abd-95f7-de7029d7d80a? 200 21ms","method":"GET","requestID":"e9bd6cb0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7ec76535-210d-4570-bc36-bac297f55e38? 200 20ms","method":"GET","requestID":"e9bdbad0-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.543226,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9ca6500-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.181961,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9cab320-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.454274,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"685df306-52ac-4893-b3cd-70b5c309f455","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3018494} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9cb0140-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.025482580Z"}]},"request_id":"6f8e5f32-d694-4da3-a577-44f49e9c740a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3064237} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.070160051Z"}]},"request_id":"cc12a465-664e-4e3c-b9b0-23387ac245aa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3090315} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9ca6500-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9cab320-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling 200 29ms","method":"POST","requestID":"e9cb0140-0158-11ef-926d-7f5be4425d00","responseTime":29,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"f4146615-55ac-489c-982c-27dcc0a933aa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.322039} device-1 | {"level":"info","message":"GET /devices/1da15291-4722-4abd-95f7-de7029d7d80a? 200 34ms","method":"GET","requestID":"e9ca6500-0158-11ef-926d-7f5be4425d00","responseTime":34,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18411025-916e-49eb-ac7f-6947f9d0ef88","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3223274} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7ec76535-210d-4570-bc36-bac297f55e38? 200 33ms","method":"GET","requestID":"e9cab320-0158-11ef-926d-7f5be4425d00","responseTime":33,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 23ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22923f22ad53b96d52eeaff28ee33dd2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73710383-724b-4268-907b-3e3446b70cb5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3298807} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.814396,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9cfe340-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"94d2db1b-71cb-4be5-8786-baf070795c48","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3331213} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.709919,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"22923f22ad53b96d52eeaff28ee33dd2"} experiment-1 | {"level":"info","message":"POST /experiments? 201 192ms","method":"POST","requestID":"22923f22ad53b96d52eeaff28ee33dd2","responseTime":192,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9d03160-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling 200 15ms","method":"POST","requestID":"e9cfe340-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"908ec32492b90a4522b4eec003f37801","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling 200 15ms","method":"POST","requestID":"e9d03160-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.768561,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"908ec32492b90a4522b4eec003f37801"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1cc3a883-77e3-4ad4-89d0-f063632129c0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3481028} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.232196,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9d2f080-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.025482580Z"}]},"request_id":"ba218b0b-c223-42b7-a8a4-917da7ab805f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3518882} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling 200 8ms","method":"POST","requestID":"e9d2f080-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"908ec32492b90a4522b4eec003f37801"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Building connection plan"} 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":"95b3995f-a92f-481e-ac9d-8f43fc6bc9c8"},{"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":"3a447cef-4f4c-43de-8ac5-ad34f1906789"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8869fd4c-f5e3-4d23-ad83-530e6978527f"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1da15291-4722-4abd-95f7-de7029d7d80a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"908ec32492b90a4522b4eec003f37801"} device-1 | {"level":"info","message":"GET /devices/1da15291-4722-4abd-95f7-de7029d7d80a? 200 13ms","method":"GET","requestID":"908ec32492b90a4522b4eec003f37801","responseTime":13,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.929547,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e42ce30fbcf8b08a408bce8a48fe67a3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9d4c540-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732541,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e42ce30fbcf8b08a408bce8a48fe67a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"abb9eeb4-58da-4750-8357-e5a82b8dc491","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3668263} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9d88d48e-bf62-4cbd-b101-a755f8a5668b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3672612} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:44.070160051Z"}]},"request_id":"94da2cab-9bb9-40c5-84f0-d4fbcc15554c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.3680153} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9d4c540-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e42ce30fbcf8b08a408bce8a48fe67a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7ec76535-210d-4570-bc36-bac297f55e38? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e42ce30fbcf8b08a408bce8a48fe67a3"} device-1 | {"level":"info","message":"GET /devices/7ec76535-210d-4570-bc36-bac297f55e38? 200 14ms","method":"GET","requestID":"e42ce30fbcf8b08a408bce8a48fe67a3","responseTime":14,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"e9d4c540-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"50513c9f-0e28-4ab9-a4e6-c549f7585454","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.4309773} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.162348,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9df4c90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling 200 11ms","method":"POST","requestID":"e9df4c90-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd6b6760-613d-465c-92e9-c54333b13eae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.4422743} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.087988,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9e14860-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling 200 8ms","method":"POST","requestID":"e9e14860-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fe8d339d-b8df-47b8-b3c2-c64163c16e3f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8e304afd9a1751f956bdd5151ad8f4e7","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"8e304afd9a1751f956bdd5151ad8f4e7","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"8e304afd9a1751f956bdd5151ad8f4e7"} device-1 | {"data":{"peerconnection":"fe8d339d-b8df-47b8-b3c2-c64163c16e3f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fe8d339d-b8df-47b8-b3c2-c64163c16e3f","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/fe8d339d-b8df-47b8-b3c2-c64163c16e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fe8d339d-b8df-47b8-b3c2-c64163c16e3f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"1ea580961dd4ba0d14d99ef202ee3699","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffe8d339d-b8df-47b8-b3c2-c64163c16e3f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6548a380-20cf-4165-bf93-c45faba0fec9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.6628356} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.341817,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea028c00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f 200 13ms","method":"GET","requestID":"ea028c00-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 42ms","method":"POST","requestID":"1ea580961dd4ba0d14d99ef202ee3699","responseTime":42,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.046","http_referrer":"","http_user_agent":"node-fetch","requestID":"1ea580961dd4ba0d14d99ef202ee3699"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21743cb2-6307-46e8-bd56-9b322d84e4bd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.6979432} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.742889,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea080a40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling 200 12ms","method":"POST","requestID":"ea080a40-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d10b8732-81cf-4673-8cb3-605987593e40","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.7137864} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.760717,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea0a7b40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling 200 13ms","method":"POST","requestID":"ea0a7b40-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c9be721371f6624d6ebcc2512e1515a3","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.294203,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c9be721371f6624d6ebcc2512e1515a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"} experiment-1 | {"level":"info","message":"GET /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59 200 17ms","method":"GET","requestID":"c9be721371f6624d6ebcc2512e1515a3","responseTime":17,"status":200,"url":"/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c9be721371f6624d6ebcc2512e1515a3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bf0b2bf846593c92798703e95431a80a","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.860467,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf0b2bf846593c92798703e95431a80a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.567305,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea17c1b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fe8d339d-b8df-47b8-b3c2-c64163c16e3f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8676852488a96da5e01e5766227a9095","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"70afd9ac21e72c8274e0fa3957a1ad18","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffe8d339d-b8df-47b8-b3c2-c64163c16e3f': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffe8d339d-b8df-47b8-b3c2-c64163c16e3f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"1ae27921-2f91-4538-9f4e-dacfd5198cf9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.8287432} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"35109f8f-62d8-4cdb-9860-acb137a0b7c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.8291965} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea17c1b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"fe8d339d-b8df-47b8-b3c2-c64163c16e3f","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f 204 57ms","method":"DELETE","requestID":"ea17c1b0-0158-11ef-926d-7f5be4425d00","responseTime":57,"status":204,"url":"/peerconnections/fe8d339d-b8df-47b8-b3c2-c64163c16e3f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1da15291-4722-4abd-95f7-de7029d7d80a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02511e63-688b-41da-b284-d3cf13f80ad8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.885272} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.64162,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea246be0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling 200 14ms","method":"POST","requestID":"ea246be0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/1da15291-4722-4abd-95f7-de7029d7d80a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"f33c79e5-5b79-44e7-b928-ca646ca6143e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.8975725} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0062f2e1-d5f9-4972-ba13-ac483d4a4848","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.8980212} authorization-1 | {"level":"info","message":"POST /relations/update 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf0b2bf846593c92798703e95431a80a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ec76535-210d-4570-bc36-bac297f55e38","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f73865bf-697d-46b2-ac82-91b499f010d8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866686.9040391} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.592572,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea272b00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling 200 16ms","method":"POST","requestID":"ea272b00-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/7ec76535-210d-4570-bc36-bac297f55e38/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf0b2bf846593c92798703e95431a80a"} experiment-1 | {"level":"info","message":"DELETE /experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59 204 196ms","method":"DELETE","requestID":"bf0b2bf846593c92798703e95431a80a","responseTime":196,"status":204,"url":"/experiments/804dd2c4-57c2-47bd-89d9-2d8b6fb7fc59"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"8676852488a96da5e01e5766227a9095","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"8676852488a96da5e01e5766227a9095"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"70afd9ac21e72c8274e0fa3957a1ad18","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"70afd9ac21e72c8274e0fa3957a1ad18"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4e9b4d3cdd133030f5db274073b66bfc","responseTime":4,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2438","request_time":"0.936","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4c75d015bb0e17484a8d002cbb8d8d40"} gateway-1 | {"time_local":"23/Apr/2024:10:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2299","request_time":"0.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":"94ba50cb1482dd71cef2977233b2b567"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:46Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1da15291-4722-4abd-95f7-de7029d7d80a' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.029684,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866686,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4Nn0.W2Ph2uN5U5NkOn69kaK5_Fltv3rEbHz-ri6YIvuVtAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e9b4d3cdd133030f5db274073b66bfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7ec76535-210d-4570-bc36-bac297f55e38' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fddb0b2e-b85a-4d71-b2ea-191244400ec3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0005367} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e9b4d3cdd133030f5db274073b66bfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f356fba-a8b8-46a6-9cba-2ae10b3a8ec5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0055523} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e9b4d3cdd133030f5db274073b66bfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"15551148-03ab-4da4-8e9c-ba2696699a04","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0194955} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"abd6be2c-cdf4-4356-81c2-52b2bab4638e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0196476} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e9b4d3cdd133030f5db274073b66bfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.019475823Z"}]},"request_id":"d2bee184-7fd2-4b4b-9ee2-7f58404d67ab","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0232606} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e9b4d3cdd133030f5db274073b66bfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":1}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"4e9b4d3cdd133030f5db274073b66bfc","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4e9b4d3cdd133030f5db274073b66bfc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4N30.ofeL1DMiUb4L72M__BOl45iGfD3YMXo23rkwJmpX_WM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ee3d9335ca109bf23b8c950de20d45e7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:47Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.681822,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866687,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4N30.ofeL1DMiUb4L72M__BOl45iGfD3YMXo23rkwJmpX_WM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee3d9335ca109bf23b8c950de20d45e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"31ee5ded-f736-4903-85fa-af72deb4d26b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0451925} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee3d9335ca109bf23b8c950de20d45e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe93555a-b13e-413e-bd0c-7a9d56e09400","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.049301} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee3d9335ca109bf23b8c950de20d45e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a32bbf00-cbdc-4438-aca2-1f05b3accf47","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0581973} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f59a3377-e58b-45a7-98d3-690bec963665","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0585048} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee3d9335ca109bf23b8c950de20d45e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"4a42b46d-f709-4977-a6b0-edd0de1c7dd3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.0624053} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee3d9335ca109bf23b8c950de20d45e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee3d9335ca109bf23b8c950de20d45e7"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"ee3d9335ca109bf23b8c950de20d45e7","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4N30.ofeL1DMiUb4L72M__BOl45iGfD3YMXo23rkwJmpX_WM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cfffd2eb058e98145773b35e3cfa0427","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:47Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.752535,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866687,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4N30.ofeL1DMiUb4L72M__BOl45iGfD3YMXo23rkwJmpX_WM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfffd2eb058e98145773b35e3cfa0427"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"f5404a8b-a829-416e-baad-963fd2067166","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.5584373} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfffd2eb058e98145773b35e3cfa0427"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b99135fc-4da4-43cc-bc7b-e43cbd7a3537","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.563757} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfffd2eb058e98145773b35e3cfa0427"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"c68d9bd8-e6a6-423f-8671-e5e06fc50397","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866687.578951} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfffd2eb058e98145773b35e3cfa0427"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/d5e513db-6237-488b-90ba-2965717b0113 200 35ms","method":"PATCH","requestID":"cfffd2eb058e98145773b35e3cfa0427","responseTime":35,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113"} gateway-1 | {"time_local":"23/Apr/2024:10:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d5e513db-6237-488b-90ba-2965717b0113 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cfffd2eb058e98145773b35e3cfa0427"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4N30.ofeL1DMiUb4L72M__BOl45iGfD3YMXo23rkwJmpX_WM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4689a5123824e7443c00a44d8925f67d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:47Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.363882,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866687,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4N30.ofeL1DMiUb4L72M__BOl45iGfD3YMXo23rkwJmpX_WM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4689a5123824e7443c00a44d8925f67d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4689a5123824e7443c00a44d8925f67d"} device-1 | {"level":"info","message":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/websocket 200 21ms","method":"POST","requestID":"4689a5123824e7443c00a44d8925f67d","responseTime":21,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8205cb0ae9b00f74c6b7fcc5026967ca","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/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":"8205cb0ae9b00f74c6b7fcc5026967ca"} device-1 | {"level":"info","message":"OPTIONS /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/websocket 200 1ms","method":"OPTIONS","requestID":"8205cb0ae9b00f74c6b7fcc5026967ca","responseTime":1,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9562d3de12895506d5e5bae45d9ffc7d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.136047,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9562d3de12895506d5e5bae45d9ffc7d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/websocket 200 32ms","method":"POST","requestID":"9562d3de12895506d5e5bae45d9ffc7d","responseTime":32,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.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":"9562d3de12895506d5e5bae45d9ffc7d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ec6341765a58b7d2e392e2034daae0cb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.318645,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ec6341765a58b7d2e392e2034daae0cb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.019475823Z"}]},"request_id":"cc3be89b-f24a-4efb-8cd0-fd414df9a7b4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.1271417} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ec6341765a58b7d2e392e2034daae0cb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ec6341765a58b7d2e392e2034daae0cb"} device-1 | {"level":"info","message":"GET /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9? 200 19ms","method":"GET","requestID":"ec6341765a58b7d2e392e2034daae0cb","responseTime":19,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0a1ee1b2c3bd3ce477cdb4e0b4592283","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.185178,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a1ee1b2c3bd3ce477cdb4e0b4592283"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"9e5d87bc-35cb-4054-8f4b-4662ad9a5554","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.1550653} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a1ee1b2c3bd3ce477cdb4e0b4592283"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d5e513db-6237-488b-90ba-2965717b0113? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0a1ee1b2c3bd3ce477cdb4e0b4592283"} device-1 | {"level":"info","message":"GET /devices/d5e513db-6237-488b-90ba-2965717b0113? 200 19ms","method":"GET","requestID":"0a1ee1b2c3bd3ce477cdb4e0b4592283","responseTime":19,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"85ada474194f12acc0060b2192aa43a9","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.30394,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"85ada474194f12acc0060b2192aa43a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.136772,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb8b9d00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.368608,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb8beb20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.019475823Z"}]},"request_id":"0e20d409-6ba8-4dc0-bf1e-648fec838573","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.2508798} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb8b9d00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"072a255e-a15c-41a0-b6d9-4f35846bc122","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.252832} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb8beb20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9? 200 29ms","method":"GET","requestID":"eb8b9d00-0158-11ef-926d-7f5be4425d00","responseTime":29,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d5e513db-6237-488b-90ba-2965717b0113? 200 28ms","method":"GET","requestID":"eb8beb20-0158-11ef-926d-7f5be4425d00","responseTime":28,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.848468,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb98bc60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.543676,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb990a80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d88b849a-63b7-491d-80b4-2a5d08680572","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.3337095} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.595735,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb9958a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling 200 26ms","method":"POST","requestID":"eb9958a0-0158-11ef-926d-7f5be4425d00","responseTime":26,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.019475823Z"}]},"request_id":"6488231d-4a06-4392-ab58-6f888458a8d1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.3479395} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb98bc60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"4533a2d3-a8e3-473e-8c13-c46a104b2d25","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.35098} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb990a80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9? 200 42ms","method":"GET","requestID":"eb98bc60-0158-11ef-926d-7f5be4425d00","responseTime":42,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d5e513db-6237-488b-90ba-2965717b0113? 200 42ms","method":"GET","requestID":"eb990a80-0158-11ef-926d-7f5be4425d00","responseTime":42,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d036a1be-b5d1-4104-9834-18dade8c51b6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.3602376} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.359779,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eb9dc570-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3a8a05d-bec4-4590-a228-677675d6bb09#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3a8a05d-bec4-4590-a228-677675d6bb09","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"fd13a2f6-bb09-4c22-9759-26241419250f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.3631196} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f5cad3ff-419a-4d66-8f08-347e1642cc8f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.363325} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"85ada474194f12acc0060b2192aa43a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":34}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/signaling 200 21ms","method":"POST","requestID":"eb9dc570-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c34bad70-8f0f-468f-952e-6c6895213d54","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.375283} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.047533,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eba05d80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.219","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"85ada474194f12acc0060b2192aa43a9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 212ms","method":"POST","requestID":"85ada474194f12acc0060b2192aa43a9","responseTime":212,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling 200 15ms","method":"POST","requestID":"eba05d80-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1a1c930b2f90c9ac8cf8d0bb078f297b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91df1c56-9d18-46fa-9ca0-e569dcc9786a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.3939576} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261453,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.462655,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1a1c930b2f90c9ac8cf8d0bb078f297b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eba31ca0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.019475823Z"}]},"request_id":"b6042d10-24a4-42fe-b2b3-04b776c1f9d6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.4023104} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/signaling 200 17ms","method":"POST","requestID":"eba31ca0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1a1c930b2f90c9ac8cf8d0bb078f297b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Building connection plan"} 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":"77f77032-c620-40a5-9138-654d793ade8a"},{"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":"27c707aa-5024-4ec3-8131-7e334f13da61"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"768d494a-55f9-4d12-bc4a-15e89e771200"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1a1c930b2f90c9ac8cf8d0bb078f297b"} device-1 | {"level":"info","message":"GET /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9? 200 18ms","method":"GET","requestID":"1a1c930b2f90c9ac8cf8d0bb078f297b","responseTime":18,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.942613,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cf31c9e6728f32f017c9e84b9b5489e8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eba67800-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.867471,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf31c9e6728f32f017c9e84b9b5489e8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7d65437e-490e-4dec-a7b0-8b8a9c1df322","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.4221442} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4cf16867-933c-42f3-b7c1-9bed394d5868","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.4223413} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:47.058179042Z"}]},"request_id":"fdf93252-7a81-4967-9fe4-81d4da651477","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.422864} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eba67800-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf31c9e6728f32f017c9e84b9b5489e8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d5e513db-6237-488b-90ba-2965717b0113? 200 16ms","method":"GET","requestID":"cf31c9e6728f32f017c9e84b9b5489e8","responseTime":16,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d5e513db-6237-488b-90ba-2965717b0113? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf31c9e6728f32f017c9e84b9b5489e8"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"eba67800-0158-11ef-926d-7f5be4425d00","responseTime":42,"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"} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"38ec5ab9-c350-4c64-a9cb-cd65d3b841eb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.4898036} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.939724,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebb210c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a72f0e07cd915bf544862691ebd6eade","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling 200 13ms","method":"POST","requestID":"ebb210c0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling"} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"a72f0e07cd915bf544862691ebd6eade","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"a72f0e07cd915bf544862691ebd6eade"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f910144-6d07-4883-830e-0e37bdcf128c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.5126672} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.200896,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebb5ba40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/signaling 200 10ms","method":"POST","requestID":"ebb5ba40-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113/signaling"} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","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/10b05a95-3290-4357-b0e9-fbe341af3015' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"75779f51da14b7bbc97c924003c1745a","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F10b05a95-3290-4357-b0e9-fbe341af3015","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ebb94a8f-ce3f-473e-9151-e735b83ccd60","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.564457} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.07866,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebbda980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015 200 8ms","method":"GET","requestID":"ebbda980-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"75779f51da14b7bbc97c924003c1745a","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"75779f51da14b7bbc97c924003c1745a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d27da487-3853-4da7-8db5-cabe7b4e4821","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.5870283} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.070296,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebc12bf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling 200 8ms","method":"POST","requestID":"ebc12bf0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c557e826-3b2e-41c8-9bfc-039666c4cec9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.5974114} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.180033,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebc2b290-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/signaling 200 8ms","method":"POST","requestID":"ebc2b290-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"122a6a2fc09ebadca6e14ba2b574c55f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.797407,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"122a6a2fc09ebadca6e14ba2b574c55f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"122a6a2fc09ebadca6e14ba2b574c55f"} experiment-1 | {"level":"info","message":"GET /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09 200 21ms","method":"GET","requestID":"122a6a2fc09ebadca6e14ba2b574c55f","responseTime":21,"status":200,"url":"/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9937d35af7d86cb5eeec4773a5bdb9f9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.152284,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9937d35af7d86cb5eeec4773a5bdb9f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.222354,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebd3f0a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"036fa48b8d16bc5b62f3d551fb3356e2","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F10b05a95-3290-4357-b0e9-fbe341af3015': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F10b05a95-3290-4357-b0e9-fbe341af3015","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"fc64c36c-431a-4d1e-8bc8-62099d3e4977","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.7396114} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0ef1315-4eef-42e7-ac1d-7714e7259c9d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.7401743} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"25b6d1bfac3e84aad0404e14d55d8131","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebd3f0a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"10b05a95-3290-4357-b0e9-fbe341af3015","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015 204 71ms","method":"DELETE","requestID":"ebd3f0a0-0158-11ef-926d-7f5be4425d00","responseTime":71,"status":204,"url":"/peerconnections/10b05a95-3290-4357-b0e9-fbe341af3015"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bce898a7-61e8-4fc3-947d-7b23c69ee6d5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.8112264} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.217889,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebe2e4c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling 200 15ms","method":"POST","requestID":"ebe2e4c0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3a8a05d-bec4-4590-a228-677675d6bb09': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3a8a05d-bec4-4590-a228-677675d6bb09","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"89564948-ceac-4904-b39a-52a0037f266c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.8209271} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd660ea9-3a5a-4b00-84eb-96daf1fa47d2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.8212821} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9937d35af7d86cb5eeec4773a5bdb9f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd5e513db-6237-488b-90ba-2965717b0113","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7bd00ece-a45f-42aa-9301-3f3f9cb1fb1d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.8299904} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.998818,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ebe5caf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d5e513db-6237-488b-90ba-2965717b0113/signaling 200 15ms","method":"POST","requestID":"ebe5caf0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/d5e513db-6237-488b-90ba-2965717b0113/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.205","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9937d35af7d86cb5eeec4773a5bdb9f9"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2248","request_time":"2.276","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"43c92890b3d8eff6e05b0bfad6918d50"} experiment-1 | {"level":"info","message":"DELETE /experiments/b3a8a05d-bec4-4590-a228-677675d6bb09 204 201ms","method":"DELETE","requestID":"9937d35af7d86cb5eeec4773a5bdb9f9","responseTime":201,"status":204,"url":"/experiments/b3a8a05d-bec4-4590-a228-677675d6bb09"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"036fa48b8d16bc5b62f3d551fb3356e2","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"036fa48b8d16bc5b62f3d551fb3356e2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 149ms","method":"POST","requestID":"25b6d1bfac3e84aad0404e14d55d8131","responseTime":149,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.159","http_referrer":"","http_user_agent":"node-fetch","requestID":"25b6d1bfac3e84aad0404e14d55d8131"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"10fcc28f8209f22ef847445a801ed1c2","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.810","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fcdc2a682d491278507d46f5da51346e"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.957112,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"10fcc28f8209f22ef847445a801ed1c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d5e513db-6237-488b-90ba-2965717b0113' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/377b2668-0a6d-4a9f-836f-80cb1ac7d5e9' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"34567ace-8817-43b3-a314-73c667b2e6cc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9174347} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"10fcc28f8209f22ef847445a801ed1c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7eaf38a-a75e-40f4-b09f-9c89fd089ba0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9228754} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"10fcc28f8209f22ef847445a801ed1c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"e853e29d-b778-4ee3-a39d-00fd46d61a4c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9323318} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4cfe62e-f27c-4f13-a5f4-9e2be3275ed9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9326034} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"10fcc28f8209f22ef847445a801ed1c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.932312456Z"}]},"request_id":"777f1d99-0f3a-4e1d-8460-c627340c4216","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9370198} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"10fcc28f8209f22ef847445a801ed1c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"10fcc28f8209f22ef847445a801ed1c2"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"10fcc28f8209f22ef847445a801ed1c2","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.772081,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866689,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY4OX0.xkqnqPyQ9HxRmbD3N6TNd5jwGuskyhK3bIYWzd2VzfE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8f5a1504-dbdc-4167-9c1b-a12c3569c988","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9609416} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5542cdcb-a78a-45da-a0f8-41f9ed471fa0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9656355} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"1c0a8132-4009-40f9-8cbb-b8c2320a63f1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9770758} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d659a73-9556-429a-8d28-9744f0f79174","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9772053} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"f580c0ba-843d-4e3c-bd31-414fb95e5aeb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866689.9818587} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9b7ffd1f8d0ea2ecc62bf2ec2e12022b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5MH0.9WA2qad0tOZkcHZhUXOsiqFmREERJL-q1B2z0PjktEY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5572bdae38326e67f1975ff860fe9008","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:50Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.148084,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866690,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5MH0.9WA2qad0tOZkcHZhUXOsiqFmREERJL-q1B2z0PjktEY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5572bdae38326e67f1975ff860fe9008"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"cae92fcf-0a75-4036-a1e0-19ccffccadf5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866690.4717147} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5572bdae38326e67f1975ff860fe9008"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c844cc7-1dbe-42e7-86ef-bb0c410937ee","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866690.4767199} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5572bdae38326e67f1975ff860fe9008"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"fca50f1c-17b0-40fd-b92a-e0ca5b0aa5d5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866690.492094} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5572bdae38326e67f1975ff860fe9008"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/777ed224-5905-4c89-ad68-eec41a10c943 200 34ms","method":"PATCH","requestID":"5572bdae38326e67f1975ff860fe9008","responseTime":34,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943"} gateway-1 | {"time_local":"23/Apr/2024:10:04:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/777ed224-5905-4c89-ad68-eec41a10c943 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5572bdae38326e67f1975ff860fe9008"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5MH0.9WA2qad0tOZkcHZhUXOsiqFmREERJL-q1B2z0PjktEY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4215583f70608df8fb10430eed32dd9a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:50Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834453,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866690,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5MH0.9WA2qad0tOZkcHZhUXOsiqFmREERJL-q1B2z0PjktEY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4215583f70608df8fb10430eed32dd9a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/websocket 200 18ms","method":"POST","requestID":"4215583f70608df8fb10430eed32dd9a","responseTime":18,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4215583f70608df8fb10430eed32dd9a"} device-1 | {"level":"info","message":"device 'http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a0b299742ffeef5547908fc2e83b5781","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/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":"a0b299742ffeef5547908fc2e83b5781"} device-1 | {"level":"info","message":"OPTIONS /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/websocket 200 1ms","method":"OPTIONS","requestID":"a0b299742ffeef5547908fc2e83b5781","responseTime":1,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5MX0.WbbwQ1SKfx5FyQa_OsjT-9N5FAYQCe6MGNs65ALTDE4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"046658e07edc9db865ceb4e1614df6a7","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:51Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.391483,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866691,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5MX0.WbbwQ1SKfx5FyQa_OsjT-9N5FAYQCe6MGNs65ALTDE4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"046658e07edc9db865ceb4e1614df6a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"046658e07edc9db865ceb4e1614df6a7"} device-1 | {"level":"info","message":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/websocket 200 40ms","method":"POST","requestID":"046658e07edc9db865ceb4e1614df6a7","responseTime":40,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"43b50539fcdf5c3760e9998964b03149","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.430199,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43b50539fcdf5c3760e9998964b03149"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.932312456Z"}]},"request_id":"2231c2bd-62f8-4135-96b2-c6acc96485bb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.0729675} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43b50539fcdf5c3760e9998964b03149"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43b50539fcdf5c3760e9998964b03149"} device-1 | {"level":"info","message":"GET /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d? 200 21ms","method":"GET","requestID":"43b50539fcdf5c3760e9998964b03149","responseTime":21,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8b005c5b3009648389d909384057ae5f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.214172,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b005c5b3009648389d909384057ae5f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"ddf7b517-a0f2-48d5-bd4a-041cb10b3cfb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.1015215} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b005c5b3009648389d909384057ae5f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/777ed224-5905-4c89-ad68-eec41a10c943? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8b005c5b3009648389d909384057ae5f"} device-1 | {"level":"info","message":"GET /devices/777ed224-5905-4c89-ad68-eec41a10c943? 200 20ms","method":"GET","requestID":"8b005c5b3009648389d909384057ae5f","responseTime":20,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"96db85e9c5f9daf22ed341426f5b716b","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.217471,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"96db85e9c5f9daf22ed341426f5b716b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.453968,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed4c11b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685238,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed4c5fd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.932312456Z"}]},"request_id":"19edb45b-03b0-4bd2-9bf3-69bb5ff090dd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.1809065} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed4c11b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"26a09c66-553b-44fb-8a26-c0b789e58647","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.1814718} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed4c5fd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d? 200 17ms","method":"GET","requestID":"ed4c11b0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/777ed224-5905-4c89-ad68-eec41a10c943? 200 16ms","method":"GET","requestID":"ed4c5fd0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.7294,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed578360-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.13152,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed57aa70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.343457,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"917b6497-95d2-4404-b424-0087e4392b97","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2562776} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed57f890-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling 200 14ms","method":"POST","requestID":"ed57f890-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.932312456Z"}]},"request_id":"13142028-5b18-456a-a93c-043afe7c7b55","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2626798} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed578360-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"06552ec0-6413-4339-927e-933eb2fa8127","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2642095} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed57aa70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d? 200 25ms","method":"GET","requestID":"ed578360-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/777ed224-5905-4c89-ad68-eec41a10c943? 200 25ms","method":"GET","requestID":"ed57aa70-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b37129c-094a-46d5-9a0e-454b45150b65","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.27086} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.625787,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed5a90a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc6e399bf-adaf-44cd-a103-9bada0a088b9#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc6e399bf-adaf-44cd-a103-9bada0a088b9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"35d19fc9-8c50-420a-adf0-9d8ba8043ccd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2730656} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9640f55-7c73-4cdb-9b75-b9eece27958c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2733963} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"96db85e9c5f9daf22ed341426f5b716b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling 200 13ms","method":"POST","requestID":"ed5a90a0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"29ea1bee-fd8f-4888-a5d9-9169ee91d005","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2796004} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.640539,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed5bc920-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"96db85e9c5f9daf22ed341426f5b716b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 166ms","method":"POST","requestID":"96db85e9c5f9daf22ed341426f5b716b","responseTime":166,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling 200 11ms","method":"POST","requestID":"ed5bc920-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d342bbd720c3d4e4585be2cc21e69a8c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a25905be-ba11-470a-a63c-085f8b0b4b2b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2919586} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.222788,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d342bbd720c3d4e4585be2cc21e69a8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.853564,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed5dc4f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.932312456Z"}]},"request_id":"f526329f-9df2-4757-b401-b0a08a71b5e2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.2974172} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d342bbd720c3d4e4585be2cc21e69a8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling 200 11ms","method":"POST","requestID":"ed5dc4f0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Building connection plan"} 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":"e27993da-6526-4392-ae8d-d2ee68f9056d"},{"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":"a200f0db-ee4b-455c-ba72-c5b065968eca"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6de88f51-cbcc-4640-8a75-dfecd8e2114a"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d342bbd720c3d4e4585be2cc21e69a8c"} device-1 | {"level":"info","message":"GET /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d? 200 15ms","method":"GET","requestID":"d342bbd720c3d4e4585be2cc21e69a8c","responseTime":15,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.790336,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed5fe7d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3224ca401363ace428af9dc3652b7c7e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629962,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3224ca401363ace428af9dc3652b7c7e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"13ab0d53-a4c3-4001-85af-ad5079df3a2d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.31706} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"98d28a8b-b17f-4f95-bb9e-0781465de13c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.317312} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed5fe7d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:49.977051120Z"}]},"request_id":"e847064c-c823-4891-a37c-62e4e2de2df1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.3184183} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3224ca401363ace428af9dc3652b7c7e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/777ed224-5905-4c89-ad68-eec41a10c943? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3224ca401363ace428af9dc3652b7c7e"} device-1 | {"level":"info","message":"GET /devices/777ed224-5905-4c89-ad68-eec41a10c943? 200 13ms","method":"GET","requestID":"3224ca401363ace428af9dc3652b7c7e","responseTime":13,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"ed5fe7d0-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71fce50c-4630-4bf7-a8df-eaad215a8baa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.379204} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.060055,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed6b0b60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling 200 10ms","method":"POST","requestID":"ed6b0b60-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3208c9bc-2e40-4f43-954c-c5abf4949e5e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.391306} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.860427,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed6ce020-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling 200 12ms","method":"POST","requestID":"ed6ce020-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8f9c32155da71e40faa10c62a92f3c9a","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"8f9c32155da71e40faa10c62a92f3c9a","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"8f9c32155da71e40faa10c62a92f3c9a"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","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/ee5a02b2-2e0c-4036-b617-8c433543178b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"baee80f9d5386c03d68f9bf98161104c","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fee5a02b2-2e0c-4036-b617-8c433543178b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30ef4300-9f05-453b-ad2f-06aeb987c57c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.4719863} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.005292,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed793c30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b 200 8ms","method":"GET","requestID":"ed793c30-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"baee80f9d5386c03d68f9bf98161104c","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"baee80f9d5386c03d68f9bf98161104c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92283ae0-67dc-4b77-a15b-54b1647672fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.4952233} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.084022,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed7ce5b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling 200 8ms","method":"POST","requestID":"ed7ce5b0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c72c20a-5a9e-4978-82ac-38164592069a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.505201} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.081841,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed7e6c50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling 200 8ms","method":"POST","requestID":"ed7e6c50-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ca07ae9fa3edb50e402846b1c9cd400f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.017588,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca07ae9fa3edb50e402846b1c9cd400f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca07ae9fa3edb50e402846b1c9cd400f"} experiment-1 | {"level":"info","message":"GET /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9 200 14ms","method":"GET","requestID":"ca07ae9fa3edb50e402846b1c9cd400f","responseTime":14,"status":200,"url":"/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0c960beb9c9065b0294b4df8929a1fa3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.947817,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0c960beb9c9065b0294b4df8929a1fa3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.189705,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed8d6070-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fee5a02b2-2e0c-4036-b617-8c433543178b': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fee5a02b2-2e0c-4036-b617-8c433543178b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"925dd141-697a-4cf3-a95b-08b4c7befd73","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.6220436} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"59a5ee43d297c7835bffff496eab2330","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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"910c998a-86be-4ec7-8927-f82c4f838452","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.6224742} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed8d6070-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2bb2b80c5cd7a7295a9776227915d429","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ee5a02b2-2e0c-4036-b617-8c433543178b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b 204 54ms","method":"DELETE","requestID":"ed8d6070-0158-11ef-926d-7f5be4425d00","responseTime":54,"status":204,"url":"/peerconnections/ee5a02b2-2e0c-4036-b617-8c433543178b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf9b8d2c-c156-4695-bc3c-0c0c2994431d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c702c89-17df-415e-a290-613349155c54","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.6784394} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.733456,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed980ed0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling 200 16ms","method":"POST","requestID":"ed980ed0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc6e399bf-adaf-44cd-a103-9bada0a088b9': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc6e399bf-adaf-44cd-a103-9bada0a088b9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"f244e5d8-cb71-4381-be6b-2572174c34ea","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.6889553} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfcc1147-c7fa-429b-a032-620aa4a157ca","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.689283} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0c960beb9c9065b0294b4df8929a1fa3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F777ed224-5905-4c89-ad68-eec41a10c943","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"949a9074-478d-49a7-817f-05b146f46653","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.6976006} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.807624,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed9b1c10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling 200 14ms","method":"POST","requestID":"ed9b1c10-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/777ed224-5905-4c89-ad68-eec41a10c943/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c960beb9c9065b0294b4df8929a1fa3"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2252","request_time":"2.227","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"29fa3557f074931f788b843b47a1bd5a"} experiment-1 | {"level":"info","message":"DELETE /experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9 204 163ms","method":"DELETE","requestID":"0c960beb9c9065b0294b4df8929a1fa3","responseTime":163,"status":204,"url":"/experiments/c6e399bf-adaf-44cd-a103-9bada0a088b9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"59a5ee43d297c7835bffff496eab2330","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.130","http_referrer":"","http_user_agent":"node-fetch","requestID":"59a5ee43d297c7835bffff496eab2330"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"2bb2b80c5cd7a7295a9776227915d429","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.131","http_referrer":"","http_user_agent":"node-fetch","requestID":"2bb2b80c5cd7a7295a9776227915d429"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4db5ae4cb9d2152ebed777d44238ecd6","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.726","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b4fc8da9f67d5fad460e2e14782f74e8"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/777ed224-5905-4c89-ad68-eec41a10c943' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cf9b8d2c-c156-4695-bc3c-0c0c2994431d' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.032997,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4db5ae4cb9d2152ebed777d44238ecd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7c4ae9e4-5a30-4884-b3fd-63970d8c321f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.7823722} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4db5ae4cb9d2152ebed777d44238ecd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0a7c929-f498-48c1-9a78-fef0b2bfe2c1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.7876337} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4db5ae4cb9d2152ebed777d44238ecd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"327ec791-468a-4b95-9e5c-d9128bb6d2db","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.797466} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e9641cd9-64fa-4d61-8a43-a85226e50f31","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.7975395} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4db5ae4cb9d2152ebed777d44238ecd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"b2f4b047-9e3c-48d8-8f2c-4d14cb3496a1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.801799} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4db5ae4cb9d2152ebed777d44238ecd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4db5ae4cb9d2152ebed777d44238ecd6"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"4db5ae4cb9d2152ebed777d44238ecd6","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"271f5d9910f9a304365e8023083471e2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.780931,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866692,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Mn0.2yz1huvPdmh-IZyjxnXiqornW970loea4PaUyLHBy40"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"271f5d9910f9a304365e8023083471e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"93d968ba-053f-4ec6-847c-483d4c6bc0e9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.8253248} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"271f5d9910f9a304365e8023083471e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ca73d2a-6458-4064-9dd8-a2fdb9802034","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.8308587} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"271f5d9910f9a304365e8023083471e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ce30ad6c-3475-4546-91a5-ef09f268e60c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.8428452} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7f221de9-ce46-4c2d-ba63-b0260387878d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.8430984} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"271f5d9910f9a304365e8023083471e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.842825494Z"}]},"request_id":"077f4a7f-da0c-4aad-aa37-92944d67ae62","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866692.8472466} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"271f5d9910f9a304365e8023083471e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"271f5d9910f9a304365e8023083471e2","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"271f5d9910f9a304365e8023083471e2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5M30.yFQ2IIvLdJnGN43FsYztfZf_hxWCR-byTlBe_4H-XV0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"003647ff41c22b3d79a0b0b08c621119","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:53Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.815068,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866693,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5M30.yFQ2IIvLdJnGN43FsYztfZf_hxWCR-byTlBe_4H-XV0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"003647ff41c22b3d79a0b0b08c621119"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"1677adac-b5f6-438b-abfb-9feb66cdb196","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866693.3362525} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"003647ff41c22b3d79a0b0b08c621119"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6de663af-6e00-41f6-87e6-3392f45e18cf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866693.3420806} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"003647ff41c22b3d79a0b0b08c621119"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"0fd4189c-e946-46ac-b90f-831a901e2705","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866693.3625476} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"003647ff41c22b3d79a0b0b08c621119"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ee65e50a-f405-4cbf-844e-40015dde4eac HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"003647ff41c22b3d79a0b0b08c621119"} device-1 | {"level":"info","message":"PATCH /devices/ee65e50a-f405-4cbf-844e-40015dde4eac 200 43ms","method":"PATCH","requestID":"003647ff41c22b3d79a0b0b08c621119","responseTime":43,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5M30.yFQ2IIvLdJnGN43FsYztfZf_hxWCR-byTlBe_4H-XV0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7172b06b40e49c6e0df293461726a5a4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:53Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.256014,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866693,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5M30.yFQ2IIvLdJnGN43FsYztfZf_hxWCR-byTlBe_4H-XV0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7172b06b40e49c6e0df293461726a5a4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/websocket 200 20ms","method":"POST","requestID":"7172b06b40e49c6e0df293461726a5a4","responseTime":20,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:04:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7172b06b40e49c6e0df293461726a5a4"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2fdcabe466825d5cb8c83a555ad4ab38","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/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":"2fdcabe466825d5cb8c83a555ad4ab38"} device-1 | {"level":"info","message":"OPTIONS /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/websocket 200 1ms","method":"OPTIONS","requestID":"2fdcabe466825d5cb8c83a555ad4ab38","responseTime":1,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"43092364ce31f7a3c052f0ca6cc5b17b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.161365,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43092364ce31f7a3c052f0ca6cc5b17b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/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":"43092364ce31f7a3c052f0ca6cc5b17b"} device-1 | {"level":"info","message":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/websocket 200 45ms","method":"POST","requestID":"43092364ce31f7a3c052f0ca6cc5b17b","responseTime":45,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"eea4882bfb648b0fc6e4de7d361304ca","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.25461,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eea4882bfb648b0fc6e4de7d361304ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"07606800-9955-45e8-83e6-a0480b10b849","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866694.9377365} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eea4882bfb648b0fc6e4de7d361304ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee65e50a-f405-4cbf-844e-40015dde4eac? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eea4882bfb648b0fc6e4de7d361304ca"} device-1 | {"level":"info","message":"GET /devices/ee65e50a-f405-4cbf-844e-40015dde4eac? 200 19ms","method":"GET","requestID":"eea4882bfb648b0fc6e4de7d361304ca","responseTime":19,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"8d9bb4e0b0b10c0d4327a5dadb198de9","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.324082,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8d9bb4e0b0b10c0d4327a5dadb198de9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.842825494Z"}]},"request_id":"fe694d8d-469a-45f3-ac00-1a27a81ef027","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866694.9650114} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8d9bb4e0b0b10c0d4327a5dadb198de9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b? 200 18ms","method":"GET","requestID":"8d9bb4e0b0b10c0d4327a5dadb198de9","responseTime":18,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d9bb4e0b0b10c0d4327a5dadb198de9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"00114fd25b96ca4e48811271ed513b10","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.765189,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00114fd25b96ca4e48811271ed513b10"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.896284,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0114b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.572707,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef013bc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"6ca54591-c355-432c-ba0d-93d9fdd81a54","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.044821} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0114b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.842825494Z"}]},"request_id":"3f0a30f4-74a2-4e6e-ac23-67f8a3fbf17c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.0460148} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef013bc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ee65e50a-f405-4cbf-844e-40015dde4eac? 200 18ms","method":"GET","requestID":"ef0114b0-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b? 200 19ms","method":"GET","requestID":"ef013bc0-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.148899,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0c3840-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.767936,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0c8660-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:52380","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.414919,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9f393c49-3c09-4ac0-9b57-59a0d386aea7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1193688} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0cd480-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"a60a5ba1-8bd4-4923-bcb3-5a8ccd11fa7e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1249824} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0c3840-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.842825494Z"}]},"request_id":"9abd830c-c1e3-4e50-a9c5-d5da9d190b1d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1291492} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef0c8660-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling 200 21ms","method":"POST","requestID":"ef0cd480-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd1e69214-fc38-40ae-b0d1-4b9c9c45a611#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd1e69214-fc38-40ae-b0d1-4b9c9c45a611","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9184539f-63ec-43d9-887e-85f0f1a8f808","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1371589} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d47f3609-24a9-47e9-b452-e6e7b6c6e5a7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1374013} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ee65e50a-f405-4cbf-844e-40015dde4eac? 200 32ms","method":"GET","requestID":"ef0c3840-0158-11ef-926d-7f5be4425d00","responseTime":32,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b? 200 31ms","method":"GET","requestID":"ef0c8660-0158-11ef-926d-7f5be4425d00","responseTime":31,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00114fd25b96ca4e48811271ed513b10"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8f9f7ba4-5a92-4511-957f-6bdef8f4022e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1438556} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.960312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef107e00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"03b68713-c02f-4523-815b-31533a620995","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1482947} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.292808,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","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"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef118f70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling 200 14ms","method":"POST","requestID":"ef107e00-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"00114fd25b96ca4e48811271ed513b10"} experiment-1 | {"level":"info","message":"POST /experiments? 201 171ms","method":"POST","requestID":"00114fd25b96ca4e48811271ed513b10","responseTime":171,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling 200 11ms","method":"POST","requestID":"ef118f70-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"39ccdb6915cc515429d93f9dc95fa87c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.74348,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39ccdb6915cc515429d93f9dc95fa87c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e974dabf-df85-408d-bf9e-fc4b4101bfe7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1607897} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.250236,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef138b40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.797435002Z"}]},"request_id":"a080063d-f84e-41c1-b32f-8c9c78598555","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.164916} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling 200 9ms","method":"POST","requestID":"ef138b40-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39ccdb6915cc515429d93f9dc95fa87c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Building connection plan"} 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":"88154d80-a6b9-445e-891f-1aaa38c4b23b"},{"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":"eec93f7a-1fd8-487c-8110-db83e8eebb6b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"73ef2b04-fb1a-4f60-9eac-51ce33906d64"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee65e50a-f405-4cbf-844e-40015dde4eac? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"39ccdb6915cc515429d93f9dc95fa87c"} device-1 | {"level":"info","message":"GET /devices/ee65e50a-f405-4cbf-844e-40015dde4eac? 200 12ms","method":"GET","requestID":"39ccdb6915cc515429d93f9dc95fa87c","responseTime":12,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.881045,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866694,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NH0._6aH8fLdop0dcOklO9pmYJobQLNI5HrzIR5SVxjUpK8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef156000-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f9c1dbfaa7ea7f027f59b0da7be7659a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70716,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9c1dbfaa7ea7f027f59b0da7be7659a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"bc824900-930e-46d1-970a-676d7ef30fb4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1818752} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9fa6982d-d8f5-44dd-83eb-beb83d383f35","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.1820598} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:52.842825494Z"}]},"request_id":"56ad38ca-5673-4cdc-9ff8-b11695b4d86e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.182785} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef156000-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9c1dbfaa7ea7f027f59b0da7be7659a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f9c1dbfaa7ea7f027f59b0da7be7659a"} device-1 | {"level":"info","message":"GET /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b? 200 13ms","method":"GET","requestID":"f9c1dbfaa7ea7f027f59b0da7be7659a","responseTime":13,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"ef156000-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6d2a8de6-6b40-4730-9417-5e4df51b942c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.2573197} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.629406,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef225850-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling 200 10ms","method":"POST","requestID":"ef225850-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f5bd01a4-70b8-4a83-aad9-ff2cab4c24be","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.269674} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.762195,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef242d10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a1a349b843a0aa14963315c1a81648d6","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling 200 13ms","method":"POST","requestID":"ef242d10-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"a1a349b843a0aa14963315c1a81648d6","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"a1a349b843a0aa14963315c1a81648d6"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","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/c21d154e-c336-41cf-af11-13deda69720c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"23d8181adb68e78b3cafeb6fd05f1572","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc21d154e-c336-41cf-af11-13deda69720c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"01e0e3ea-1313-4176-a041-36c729cae6b1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.3381836} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.12547,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef2eb460-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/c21d154e-c336-41cf-af11-13deda69720c 200 8ms","method":"GET","requestID":"ef2eb460-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/c21d154e-c336-41cf-af11-13deda69720c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"23d8181adb68e78b3cafeb6fd05f1572","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"23d8181adb68e78b3cafeb6fd05f1572"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e321f7ae-4062-465a-8b23-b7092a0033e1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.362241} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.172377,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef325de0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling 200 8ms","method":"POST","requestID":"ef325de0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"61220111-2d09-4d9f-ad63-7d76fa8cbb6c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.3719954} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.065806,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef33e480-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling 200 8ms","method":"POST","requestID":"ef33e480-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9e1e50a089171579227a1ea8dd31de8c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.388149,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9e1e50a089171579227a1ea8dd31de8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e1e50a089171579227a1ea8dd31de8c"} experiment-1 | {"level":"info","message":"GET /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611 200 17ms","method":"GET","requestID":"9e1e50a089171579227a1ea8dd31de8c","responseTime":17,"status":200,"url":"/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eacdf1a03a6b9e3be30886bfffac52ca","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.480751,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eacdf1a03a6b9e3be30886bfffac52ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.202763,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef445f40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc21d154e-c336-41cf-af11-13deda69720c': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc21d154e-c336-41cf-af11-13deda69720c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"8f97ed48-c6ed-4c2c-b8f7-66c85258fc9c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.5010407} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75e90415-2f0b-4766-8d27-f1d6454ab83a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.501345} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9aae2fc4baac0df1d8ae275ed2c74d52","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef445f40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b1dbf5530bbac5b03945686b0098b175","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c21d154e-c336-41cf-af11-13deda69720c"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"c21d154e-c336-41cf-af11-13deda69720c","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/c21d154e-c336-41cf-af11-13deda69720c 204 57ms","method":"DELETE","requestID":"ef445f40-0158-11ef-926d-7f5be4425d00","responseTime":57,"status":204,"url":"/peerconnections/c21d154e-c336-41cf-af11-13deda69720c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b403bcb9-ff09-47cb-afad-861798160d73","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.562649} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.483485,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef506d30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling 200 15ms","method":"POST","requestID":"ef506d30-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd1e69214-fc38-40ae-b0d1-4b9c9c45a611': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd1e69214-fc38-40ae-b0d1-4b9c9c45a611","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"9a94133e-2f6a-43bf-a90c-39f04fd823fe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.5742514} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a99a352-ee8c-47bb-8e3f-53da4847068b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.5746279} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eacdf1a03a6b9e3be30886bfffac52ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee65e50a-f405-4cbf-844e-40015dde4eac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"19e5c8a4-3e2c-40bd-8c68-51ccfa34ffaa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.5812793} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.555249,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef532c50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling 200 16ms","method":"POST","requestID":"ef532c50-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/ee65e50a-f405-4cbf-844e-40015dde4eac/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611 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":"eacdf1a03a6b9e3be30886bfffac52ca"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2252","request_time":"2.248","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7c7fcdfcf1b91377a7a20fa64efddff2"} experiment-1 | {"level":"info","message":"DELETE /experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611 204 186ms","method":"DELETE","requestID":"eacdf1a03a6b9e3be30886bfffac52ca","responseTime":186,"status":204,"url":"/experiments/d1e69214-fc38-40ae-b0d1-4b9c9c45a611"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"9aae2fc4baac0df1d8ae275ed2c74d52","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"9aae2fc4baac0df1d8ae275ed2c74d52"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"b1dbf5530bbac5b03945686b0098b175","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"b1dbf5530bbac5b03945686b0098b175"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"de2f752745acf263e6caa3a5b0cfd816","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2199","request_time":"0.755","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e411d439dc9e982871cd146cd88a64f1"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ee65e50a-f405-4cbf-844e-40015dde4eac' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.043145,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de2f752745acf263e6caa3a5b0cfd816"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0f6d5a4c-14c8-4eac-9543-d12e0d4a835b' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"865ea68c-6fda-494e-ac90-cd309d80e7da","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.6763446} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de2f752745acf263e6caa3a5b0cfd816"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ee2ea2b-b660-40e5-8ae9-63a305e04ef8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.68272} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de2f752745acf263e6caa3a5b0cfd816"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"95951022-6ce9-4b9e-a600-3f52a7e26bae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.69256} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b2654a3-4567-43c1-98c6-213b8530b456","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.6926951} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de2f752745acf263e6caa3a5b0cfd816"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"8f0a3e5d-6c55-4666-a7a7-441837b014f3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.6978624} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de2f752745acf263e6caa3a5b0cfd816"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de2f752745acf263e6caa3a5b0cfd816"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"de2f752745acf263e6caa3a5b0cfd816","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f315e0fa16590fec50dc1fac9be9d513","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.040051,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866695,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5NX0.7dgrwO9DM88_6QJcWjSt2-IXTvBDCanLbYukLY3cvCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f315e0fa16590fec50dc1fac9be9d513"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"db6327c3-bb5e-452e-bbc1-246790da028c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.7259266} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f315e0fa16590fec50dc1fac9be9d513"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f0746a2-3b58-4a32-950d-50cfe29be353","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.730807} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f315e0fa16590fec50dc1fac9be9d513"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ec3d2d0b-a2db-4c9a-9f3f-3f71538475c4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.7417598} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0c7ed34-a315-46db-80b2-85fbe54294f5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.742237} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f315e0fa16590fec50dc1fac9be9d513"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.741515022Z"}]},"request_id":"c11d1389-16d3-4637-a787-7f0f48e52197","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866695.746652} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f315e0fa16590fec50dc1fac9be9d513"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f315e0fa16590fec50dc1fac9be9d513"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"f315e0fa16590fec50dc1fac9be9d513","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Nn0.2ImzI6DCyGpi5W9d3lgq2b13t9MYcJjbWYHrG_42K8k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"20b202ca56b49fbdcd36240d4f96bb42","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:56Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.08124,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866696,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Nn0.2ImzI6DCyGpi5W9d3lgq2b13t9MYcJjbWYHrG_42K8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20b202ca56b49fbdcd36240d4f96bb42"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"2c5c9a7b-d95b-4151-bb49-26023298e259","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866696.2351985} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20b202ca56b49fbdcd36240d4f96bb42"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ed350b46-eb3e-497f-880e-0d11f48298c8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866696.2423775} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20b202ca56b49fbdcd36240d4f96bb42"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"1c3b611a-dfcd-497d-bcdc-d1d3a5153d9a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866696.264579} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20b202ca56b49fbdcd36240d4f96bb42"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8 200 45ms","method":"PATCH","requestID":"20b202ca56b49fbdcd36240d4f96bb42","responseTime":45,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8"} gateway-1 | {"time_local":"23/Apr/2024:10:04:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"20b202ca56b49fbdcd36240d4f96bb42"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Nn0.2ImzI6DCyGpi5W9d3lgq2b13t9MYcJjbWYHrG_42K8k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1c06c39d77de17c5490edb8a9ca74626","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:56Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.176282,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866696,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5Nn0.2ImzI6DCyGpi5W9d3lgq2b13t9MYcJjbWYHrG_42K8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1c06c39d77de17c5490edb8a9ca74626"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1c06c39d77de17c5490edb8a9ca74626"} device-1 | {"level":"info","message":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/websocket 200 21ms","method":"POST","requestID":"1c06c39d77de17c5490edb8a9ca74626","responseTime":21,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"330027b5017c27f2ef7a19a91dbc8dcc","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/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":"330027b5017c27f2ef7a19a91dbc8dcc"} device-1 | {"level":"info","message":"OPTIONS /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/websocket 200 1ms","method":"OPTIONS","requestID":"330027b5017c27f2ef7a19a91dbc8dcc","responseTime":1,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c4113d6fe6b127b36a5ca36baa21b7c7","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.301704,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c4113d6fe6b127b36a5ca36baa21b7c7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c4113d6fe6b127b36a5ca36baa21b7c7"} device-1 | {"level":"info","message":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/websocket 200 40ms","method":"POST","requestID":"c4113d6fe6b127b36a5ca36baa21b7c7","responseTime":40,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8c96ba7ea9430c312242b4df6eea64da","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.385581,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c96ba7ea9430c312242b4df6eea64da"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"ef0d7882-e643-4446-993a-62fc86e1b6aa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.8050559} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c96ba7ea9430c312242b4df6eea64da"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c96ba7ea9430c312242b4df6eea64da"} device-1 | {"level":"info","message":"GET /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8? 200 22ms","method":"GET","requestID":"8c96ba7ea9430c312242b4df6eea64da","responseTime":22,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b8937aeaa4cfc34ad7c64bee06ce5704","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.404581,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b8937aeaa4cfc34ad7c64bee06ce5704"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.741515022Z"}]},"request_id":"a55bce88-7ad3-4115-ae1f-addec0f22fe2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.834995} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b8937aeaa4cfc34ad7c64bee06ce5704"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46b3ef99-87b5-45f0-b65b-02811e58413f? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b8937aeaa4cfc34ad7c64bee06ce5704"} device-1 | {"level":"info","message":"GET /devices/46b3ef99-87b5-45f0-b65b-02811e58413f? 200 18ms","method":"GET","requestID":"b8937aeaa4cfc34ad7c64bee06ce5704","responseTime":18,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b53b9b9a25028107decb1fd30ad830e1","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.492408,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b53b9b9a25028107decb1fd30ad830e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.717891,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0b617b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.809066,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0b665d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"aa76aa2a-9df8-49ea-96db-502a603a5eae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.9116356} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0b617b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.741515022Z"}]},"request_id":"b0cc18f9-98e3-4caf-b393-923441d72762","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.9129708} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0b665d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8? 200 21ms","method":"GET","requestID":"f0b617b0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/46b3ef99-87b5-45f0-b65b-02811e58413f? 200 21ms","method":"GET","requestID":"f0b665d0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.711475,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c1b070-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.249943,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c1fe90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.07342,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:57Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b289d9b-cd22-4432-944b-eb83babac376","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.9895618} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c24cb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"c1774977-27fd-46e6-a7c0-98d18bf1f93e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.9938357} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c1b070-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.741515022Z"}]},"request_id":"89090231-7a2e-4772-adb2-79b763eec5ba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866697.9987264} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c1fe90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling 200 23ms","method":"POST","requestID":"f0c24cb0-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbe955536-a4d9-41c1-8947-6671344784ff#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbe955536-a4d9-41c1-8947-6671344784ff","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"755c24ad-f04e-4a45-91e6-c3409fee2e21","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0034516} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b5d7bc1-320a-4c84-a815-b9e58efb10b8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0038335} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b53b9b9a25028107decb1fd30ad830e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8? 200 32ms","method":"GET","requestID":"f0c1b070-0158-11ef-926d-7f5be4425d00","responseTime":32,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/46b3ef99-87b5-45f0-b65b-02811e58413f? 200 30ms","method":"GET","requestID":"f0c1fe90-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"38229fc8-f3a8-4f1b-8b4e-186d1e8e9f42","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0087266} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.344678,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c61d40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} gateway-1 | {"time_local":"23/Apr/2024:10:04:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.170","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b53b9b9a25028107decb1fd30ad830e1"} experiment-1 | {"level":"info","message":"POST /experiments? 201 163ms","method":"POST","requestID":"b53b9b9a25028107decb1fd30ad830e1","responseTime":163,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling 200 11ms","method":"POST","requestID":"f0c61d40-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a7a15df-3649-41b0-a14d-b52c73c8361f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0159295} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.140074,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c72eb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OH0.RSljKTqldg4UGfgYjFCiiaKOzTkwCPPk1W9iWTLuiGU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"79bf0cd8097cf014a79434406e4c900c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling 200 12ms","method":"POST","requestID":"f0c72eb0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.850078,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866698,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OH0.RSljKTqldg4UGfgYjFCiiaKOzTkwCPPk1W9iWTLuiGU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79bf0cd8097cf014a79434406e4c900c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.692540336Z"}]},"request_id":"3654e215-af0f-4130-b28d-92a7aa644ccc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0305598} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"af116b00-8f91-4964-8dd5-052f63d1b8cf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0306075} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79bf0cd8097cf014a79434406e4c900c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.913915,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0c95190-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"79bf0cd8097cf014a79434406e4c900c"} device-1 | {"level":"info","message":"GET /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8? 200 16ms","method":"GET","requestID":"79bf0cd8097cf014a79434406e4c900c","responseTime":16,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling 200 13ms","method":"POST","requestID":"f0c95190-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Building connection plan"} 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":"3a52a3fa-eb31-4e2c-8861-a8ba20efbf0e"},{"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":"e1944487-7b9d-4692-9def-837b0696972c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"36425188-3102-41d4-9e2d-c3c0be8bf525"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OH0.RSljKTqldg4UGfgYjFCiiaKOzTkwCPPk1W9iWTLuiGU","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"69db4a4cdbbac922d1fb375b8a30be90","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.637974,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866697,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5N30.nrvC3NAzXRfkPCSoXFijuKyAp_UdHnx2qexCcrZLOls"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0cbc290-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.570287,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866698,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OH0.RSljKTqldg4UGfgYjFCiiaKOzTkwCPPk1W9iWTLuiGU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69db4a4cdbbac922d1fb375b8a30be90"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:55.741515022Z"}]},"request_id":"ae8e789e-c709-48f4-ac2a-3c463aba99e6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.049911} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69db4a4cdbbac922d1fb375b8a30be90"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46b3ef99-87b5-45f0-b65b-02811e58413f? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"69db4a4cdbbac922d1fb375b8a30be90"} device-1 | {"level":"info","message":"GET /devices/46b3ef99-87b5-45f0-b65b-02811e58413f? 200 10ms","method":"GET","requestID":"69db4a4cdbbac922d1fb375b8a30be90","responseTime":10,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"18b78dcb-7578-4404-94d8-37ec26055305","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.0533793} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"822acf2d-532b-4fac-b18b-cebdbfbf2385","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.053715} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0cbc290-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 38ms","method":"POST","requestID":"f0cbc290-0158-11ef-926d-7f5be4425d00","responseTime":38,"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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"48d75cd5-9389-4348-b05b-02bd6cda8e21","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.116927} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.218393,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0d69800-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling 200 10ms","method":"POST","requestID":"f0d69800-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bcb5e3a8-37e1-4995-bd4c-ddb1d47fc5f1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866698.1287148} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.430879,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0d86cc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling 200 10ms","method":"POST","requestID":"f0d86cc0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"06ea095f5e6d4947edfc4091f52e4fdd","responseTime":3,"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"06ea095f5e6d4947edfc4091f52e4fdd","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"06ea095f5e6d4947edfc4091f52e4fdd"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","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/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"44f8b254c75791dff57eb0feea2dc7c5","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2557721e-f70c-45bd-a256-f1d2f2bace93","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.217775} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.261748,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f17e70c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d 200 11ms","method":"GET","requestID":"f17e70c0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"44f8b254c75791dff57eb0feea2dc7c5","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"44f8b254c75791dff57eb0feea2dc7c5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"78fafd9a-638d-48bb-b562-10cc90fa0dc1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.2494473} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.025201,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f18379d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling 200 10ms","method":"POST","requestID":"f18379d0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2388aeaa-29dc-4e42-b49b-83675cce2455","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.2644901} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.506092,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f18575a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling 200 13ms","method":"POST","requestID":"f18575a0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"812353ab91e23eac530dbe9f27682d8c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/be955536-a4d9-41c1-8947-6671344784ff"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.172294,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866699,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"812353ab91e23eac530dbe9f27682d8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/be955536-a4d9-41c1-8947-6671344784ff"} gateway-1 | {"time_local":"23/Apr/2024:10:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/be955536-a4d9-41c1-8947-6671344784ff HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"812353ab91e23eac530dbe9f27682d8c"} experiment-1 | {"level":"info","message":"GET /experiments/be955536-a4d9-41c1-8947-6671344784ff 200 19ms","method":"GET","requestID":"812353ab91e23eac530dbe9f27682d8c","responseTime":19,"status":200,"url":"/experiments/be955536-a4d9-41c1-8947-6671344784ff"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ba9f95989ddc709db9d78bd84f70f5fd","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/be955536-a4d9-41c1-8947-6671344784ff"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.489406,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866699,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ba9f95989ddc709db9d78bd84f70f5fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.661123,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866699,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f19469c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"c7e1a7f8-a410-41ef-85bc-97e21e2a6d6f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.3842854} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"208842cb9c1fc1012328cee2aab0c52b","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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c2e2a881-f53d-4f10-b2d9-93886f9ba223","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.385046} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f19469c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bd15cb90026d410d51a05d514dad8468","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d"}}},"level":"info","message":"received a callback"} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d 204 69ms","method":"DELETE","requestID":"f19469c0-0158-11ef-926d-7f5be4425d00","responseTime":69,"status":204,"url":"/peerconnections/b7c80ebc-2e87-4c54-8bfb-a2bafb5dfb3d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/be955536-a4d9-41c1-8947-6671344784ff"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10fca204-041b-4a3d-ab79-10f9adb5abd8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b9a7a738-33b5-44fa-a603-0a74848df98f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.4544933} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.050582,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f1a24c70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling 200 15ms","method":"POST","requestID":"f1a24c70-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbe955536-a4d9-41c1-8947-6671344784ff': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbe955536-a4d9-41c1-8947-6671344784ff","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"2f1b64d9-1f99-4266-a9e4-72d14e8625b5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.4665163} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29343e66-f2f2-4e90-b6e2-feae5b15e0fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.4670048} authorization-1 | {"level":"info","message":"POST /relations/update 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ba9f95989ddc709db9d78bd84f70f5fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46b3ef99-87b5-45f0-b65b-02811e58413f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a05297ad-525e-4112-a440-01ca6470c644","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.472612} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.489832,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f1a50b90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling 200 14ms","method":"POST","requestID":"f1a50b90-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/46b3ef99-87b5-45f0-b65b-02811e58413f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/be955536-a4d9-41c1-8947-6671344784ff"} gateway-1 | {"time_local":"23/Apr/2024:10:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/be955536-a4d9-41c1-8947-6671344784ff HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ba9f95989ddc709db9d78bd84f70f5fd"} experiment-1 | {"level":"info","message":"DELETE /experiments/be955536-a4d9-41c1-8947-6671344784ff 204 197ms","method":"DELETE","requestID":"ba9f95989ddc709db9d78bd84f70f5fd","responseTime":197,"status":204,"url":"/experiments/be955536-a4d9-41c1-8947-6671344784ff"} gateway-1 | {"time_local":"23/Apr/2024:10:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2438","request_time":"3.234","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4cb17515c9a8b49ac7e25acaa0828cf6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"208842cb9c1fc1012328cee2aab0c52b","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.152","http_referrer":"","http_user_agent":"node-fetch","requestID":"208842cb9c1fc1012328cee2aab0c52b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"bd15cb90026d410d51a05d514dad8468","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:04: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.153","http_referrer":"","http_user_agent":"node-fetch","requestID":"bd15cb90026d410d51a05d514dad8468"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"82237be6e2665ee171b82de9cd46c145","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/10fca204-041b-4a3d-ab79-10f9adb5abd8' closed"} gateway-1 | {"time_local":"23/Apr/2024:10:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2194","request_time":"1.774","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cad03c35aab9d2758aa1f5a4d37feed5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.171777,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866699,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82237be6e2665ee171b82de9cd46c145"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/46b3ef99-87b5-45f0-b65b-02811e58413f' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a05e8574-65ab-4f5c-a02b-833a326d0deb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.5580373} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82237be6e2665ee171b82de9cd46c145"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6523986-6c49-4f57-bb4d-dcd41fcfd4d0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.5644596} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82237be6e2665ee171b82de9cd46c145"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a593a8b8-d150-435e-810b-d6b809ab8149","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.5756793} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"211ca072-a300-46fc-9312-21b28b736b3d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.575986} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82237be6e2665ee171b82de9cd46c145"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"cf61a7fa-966a-4c58-a6eb-5706c0ebffa6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.5810115} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82237be6e2665ee171b82de9cd46c145"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"82237be6e2665ee171b82de9cd46c145","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"82237be6e2665ee171b82de9cd46c145"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"451a5973f41d3640d3966d55d91e772e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.77031,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:04:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866699,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjY5OX0.t-m6iJPuieh_izZVaahuW8x8Ajp-s5B48h-GiZSgp-o"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"451a5973f41d3640d3966d55d91e772e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2d3b9470-674b-471f-bd1c-4c535a43cadb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.6060843} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"451a5973f41d3640d3966d55d91e772e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd64e04c-210b-4d07-a7b6-d5ecdcc8b258","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.6107037} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"451a5973f41d3640d3966d55d91e772e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"4ec0937d-d8de-45e7-8fe8-2994f2dc7d6b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.6221626} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6408dfa-4dd1-4bb7-b973-ada3e46e2f52","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.622302} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"451a5973f41d3640d3966d55d91e772e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"bf32735f-d8f5-4a81-93d7-1829e4361eba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866699.6265767} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"451a5973f41d3640d3966d55d91e772e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"451a5973f41d3640d3966d55d91e772e"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"451a5973f41d3640d3966d55d91e772e","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"66d5145f71740f56941dc6dc67092054","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"526654ef1a9d8801db3bfbcdff3ba502","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.818577,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66d5145f71740f56941dc6dc67092054"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.891977,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"526654ef1a9d8801db3bfbcdff3ba502"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"6ffc8dba-df74-4108-92ed-48cd300ecaae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.1115148} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66d5145f71740f56941dc6dc67092054"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"6b21ebbd-49ce-4c46-af66-34326efc3d67","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.1160429} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"526654ef1a9d8801db3bfbcdff3ba502"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66447f6b-3bf5-4304-8b0b-72aed9ba9523","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.119114} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66d5145f71740f56941dc6dc67092054"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fd4b7b1c-522a-425b-89d2-77f335a78299","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.1216114} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"526654ef1a9d8801db3bfbcdff3ba502"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"c84cc16f-c57a-46c0-ae77-a75e7e936438","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.1404102} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"526654ef1a9d8801db3bfbcdff3ba502"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"123f5e60-79ec-4e7a-ae5b-d87fe667907a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.1415162} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66d5145f71740f56941dc6dc67092054"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"PATCH /devices/b114097b-127f-4bb5-8289-6de7fe5e1758 200 43ms","method":"PATCH","requestID":"526654ef1a9d8801db3bfbcdff3ba502","responseTime":43,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b114097b-127f-4bb5-8289-6de7fe5e1758 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"526654ef1a9d8801db3bfbcdff3ba502"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc 200 48ms","method":"PATCH","requestID":"66d5145f71740f56941dc6dc67092054","responseTime":48,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"66d5145f71740f56941dc6dc67092054"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e2126714c6d00f573241fc8dce9fb4b3","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bb6bc32cabeefe3fe8b98d3744555e19","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.945718,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2126714c6d00f573241fc8dce9fb4b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.976463,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bb6bc32cabeefe3fe8b98d3744555e19"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"bb6bc32cabeefe3fe8b98d3744555e19"} device-1 | {"level":"info","message":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/websocket 200 14ms","method":"POST","requestID":"bb6bc32cabeefe3fe8b98d3744555e19","responseTime":14,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/websocket 200 23ms","method":"POST","requestID":"e2126714c6d00f573241fc8dce9fb4b3","responseTime":23,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e2126714c6d00f573241fc8dce9fb4b3"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1db36343baa4efb202921b974b081741","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.235036,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1db36343baa4efb202921b974b081741"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"d788a325-772b-40b3-8c70-d0251fa1e66d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.210731} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1db36343baa4efb202921b974b081741"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b114097b-127f-4bb5-8289-6de7fe5e1758? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1db36343baa4efb202921b974b081741"} device-1 | {"level":"info","message":"GET /devices/b114097b-127f-4bb5-8289-6de7fe5e1758? 200 16ms","method":"GET","requestID":"1db36343baa4efb202921b974b081741","responseTime":16,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"42807606d2e2801d55b53c744515a038","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.014467,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"42807606d2e2801d55b53c744515a038"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"b5f88bb2-ae10-4a8d-8be1-a94e993e3764","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.2327013} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"42807606d2e2801d55b53c744515a038"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc? 200 16ms","method":"GET","requestID":"42807606d2e2801d55b53c744515a038","responseTime":16,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"42807606d2e2801d55b53c744515a038"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9b45315f3bf5a6f2609a17b74bc95ea5","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.039663,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b45315f3bf5a6f2609a17b74bc95ea5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943345,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2264980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.176533,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f22697a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"2c84344e-179a-4ed0-80c6-84bcdd913529","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.3281875} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2264980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"8a1d4d67-36c3-4bf2-bb5e-c622c34454c8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.330159} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f22697a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b114097b-127f-4bb5-8289-6de7fe5e1758? 200 24ms","method":"GET","requestID":"f2264980-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc? 200 23ms","method":"GET","requestID":"f22697a0-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933056,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.48449,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2303490-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2305ba0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"182460f1-1a29-4468-9bfc-735547eac152","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.3914394} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2303490-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"9f482499-117a-4312-a4e2-2670701f3914","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.3931968} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f41aa64b-91c9-46bb-8d8b-54b71f6cc681","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.3934028} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2305ba0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.640065,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f230a9c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F73f8af78-79a0-4799-84fd-072702717e92#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F73f8af78-79a0-4799-84fd-072702717e92","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"d449aa66-f90d-4954-93e4-e07f110f7262","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.3997152} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b114097b-127f-4bb5-8289-6de7fe5e1758? 200 24ms","method":"GET","requestID":"f2303490-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9d64d7b1-71da-4dbd-ab18-b97c5198dfb0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4000087} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc? 200 23ms","method":"GET","requestID":"f2305ba0-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b45315f3bf5a6f2609a17b74bc95ea5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling 200 22ms","method":"POST","requestID":"f230a9c0-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d0a1ec9-db2c-46e8-8a28-cfa2e30ed789","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4102046} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.959974,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2347a50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9b45315f3bf5a6f2609a17b74bc95ea5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"9b45315f3bf5a6f2609a17b74bc95ea5","responseTime":169,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling 200 10ms","method":"POST","requestID":"f2347a50-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d4d7e48-fbd6-48ca-8b6c-c459dfd81b24","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4163153} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.675885,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","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 called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2353da0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e9ae5fe443746fbfb6af08f363257ad1","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"213c3321-a2dd-4ab9-baf1-617dd45d6d02","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4219637} device-1 | {"level":"info","message":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling 200 12ms","method":"POST","requestID":"f2353da0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.592986,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2364f10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.748441,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9ae5fe443746fbfb6af08f363257ad1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.575650846Z"}]},"request_id":"0ced98a7-2848-4399-b3a8-d3a9cfe13f3e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.428465} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9ae5fe443746fbfb6af08f363257ad1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling 200 14ms","method":"POST","requestID":"f2364f10-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Building connection plan"} 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":"195e1dac-e5de-4431-b4c2-c9d44af155c3"},{"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":"46c91e35-62fe-4b99-af3f-50028f80e364"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0bf1d318-dd0b-4ebc-aa91-493bf1a44e13"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b114097b-127f-4bb5-8289-6de7fe5e1758? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9ae5fe443746fbfb6af08f363257ad1"} device-1 | {"level":"info","message":"GET /devices/b114097b-127f-4bb5-8289-6de7fe5e1758? 200 13ms","method":"GET","requestID":"e9ae5fe443746fbfb6af08f363257ad1","responseTime":13,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"311fc4212b95bc65b28b4afa875e4d72","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.824156,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f238e720-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.768331,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"311fc4212b95bc65b28b4afa875e4d72"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9ca22aae-d513-47a0-a8a6-5f322e50c6b3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4444346} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"434eae42-5249-4e11-ad8a-61544bcad130","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4445486} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:04:59.622134397Z"}]},"request_id":"14f8919b-00c9-4c40-946f-252d8119bbd1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.4451017} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"311fc4212b95bc65b28b4afa875e4d72"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f238e720-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"311fc4212b95bc65b28b4afa875e4d72"} device-1 | {"level":"info","message":"GET /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc? 200 13ms","method":"GET","requestID":"311fc4212b95bc65b28b4afa875e4d72","responseTime":13,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 41ms","method":"POST","requestID":"f238e720-0158-11ef-926d-7f5be4425d00","responseTime":41,"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"} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef240dcd-e6b0-49de-8288-fd7d246a749c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.5077553} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.020852,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2434760-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"24a91b885f3f086006a0bc02fa397703","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling 200 12ms","method":"POST","requestID":"f2434760-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"24a91b885f3f086006a0bc02fa397703","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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":"24a91b885f3f086006a0bc02fa397703"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99f51061-2400-4b4a-a0bd-cf933a0109a8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.5221808} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.830853,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2459150-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling 200 11ms","method":"POST","requestID":"f2459150-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling"} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","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/9e92f673-9580-45f7-86fb-0c5faa7cb7a4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"1906a3746ed5e9cbde7d48fba5104edb","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e92f673-9580-45f7-86fb-0c5faa7cb7a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3002887-f2ff-45e3-acdb-e902ff884aad","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.57293} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.350157,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f24d5980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4 200 10ms","method":"GET","requestID":"f24d5980-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"1906a3746ed5e9cbde7d48fba5104edb","responseTime":34,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"1906a3746ed5e9cbde7d48fba5104edb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7e387dd0-9546-4d32-847f-332256ff2988","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.6024344} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.079543,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f251c650-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling 200 11ms","method":"POST","requestID":"f251c650-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"654f2803-af45-4f24-9ec4-9659488974a3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.6161382} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.731477,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f253e930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling 200 11ms","method":"POST","requestID":"f253e930-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bb4080fd54061c41a4ca3385609d94ac","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/73f8af78-79a0-4799-84fd-072702717e92"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.846749,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bb4080fd54061c41a4ca3385609d94ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/73f8af78-79a0-4799-84fd-072702717e92"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/73f8af78-79a0-4799-84fd-072702717e92 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bb4080fd54061c41a4ca3385609d94ac"} experiment-1 | {"level":"info","message":"GET /experiments/73f8af78-79a0-4799-84fd-072702717e92 200 17ms","method":"GET","requestID":"bb4080fd54061c41a4ca3385609d94ac","responseTime":17,"status":200,"url":"/experiments/73f8af78-79a0-4799-84fd-072702717e92"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"46c2e857bb8b517c9517619dd1be9a83","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/73f8af78-79a0-4799-84fd-072702717e92"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.143295,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46c2e857bb8b517c9517619dd1be9a83"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.239685,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f261f2f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9c7c3646ba064fc3e4bdf1e4e29f0e7c","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9117f8475d67ebfb3c95ebd4e47f082b","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e92f673-9580-45f7-86fb-0c5faa7cb7a4': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e92f673-9580-45f7-86fb-0c5faa7cb7a4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"36abc9fa-798a-4f2f-aa0c-a832287b9f59","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.7336514} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7df896ca-819b-4a57-b2c4-c899cf464399","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.7341545} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f261f2f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"data":{"peerconnection":"9e92f673-9580-45f7-86fb-0c5faa7cb7a4","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4 204 59ms","method":"DELETE","requestID":"f261f2f0-0158-11ef-926d-7f5be4425d00","responseTime":59,"status":204,"url":"/peerconnections/9e92f673-9580-45f7-86fb-0c5faa7cb7a4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/73f8af78-79a0-4799-84fd-072702717e92"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb114097b-127f-4bb5-8289-6de7fe5e1758","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00c8028e-d78c-49c1-9d26-638b3848f26a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.790408} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.806956,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f26e4f00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling 200 14ms","method":"POST","requestID":"f26e4f00-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/b114097b-127f-4bb5-8289-6de7fe5e1758/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F73f8af78-79a0-4799-84fd-072702717e92': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F73f8af78-79a0-4799-84fd-072702717e92","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"2cfa8d5d-c867-448c-82ef-aa703702b09c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.8011677} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"772751ea-9b67-4bdc-a2e6-6dafcb85b097","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.8016977} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46c2e857bb8b517c9517619dd1be9a83"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6fc57d9-ba06-4283-bc8a-a3f2cff838fc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f58a87db-3c5d-410d-a839-36c7e1b10471","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.8101897} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.787787,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f270c000-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling 200 19ms","method":"POST","requestID":"f270c000-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/73f8af78-79a0-4799-84fd-072702717e92"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/73f8af78-79a0-4799-84fd-072702717e92 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"46c2e857bb8b517c9517619dd1be9a83"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.691","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4220fa947ab4f5ed0693ef85db603d45"} experiment-1 | {"level":"info","message":"DELETE /experiments/73f8af78-79a0-4799-84fd-072702717e92 204 181ms","method":"DELETE","requestID":"46c2e857bb8b517c9517619dd1be9a83","responseTime":181,"status":204,"url":"/experiments/73f8af78-79a0-4799-84fd-072702717e92"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2199","request_time":"0.697","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ca7cb611ea19a9f3f8465a21e74c87d0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"9c7c3646ba064fc3e4bdf1e4e29f0e7c","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"9c7c3646ba064fc3e4bdf1e4e29f0e7c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"9117f8475d67ebfb3c95ebd4e47f082b","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"9117f8475d67ebfb3c95ebd4e47f082b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0d33b10eb2cf72a7299b00ebd47b3d0e","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/a6fc57d9-ba06-4283-bc8a-a3f2cff838fc' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.906502,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d33b10eb2cf72a7299b00ebd47b3d0e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b114097b-127f-4bb5-8289-6de7fe5e1758' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8f8e5489-4c81-4825-af3f-f9b7d854fff7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.893005} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d33b10eb2cf72a7299b00ebd47b3d0e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7bd76838-872f-45c0-9189-978e6b7ad685","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.8987818} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d33b10eb2cf72a7299b00ebd47b3d0e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"41624a53-4e86-451a-be99-cf2539c3ac03","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.9084854} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c37ed481-c186-4018-8fbc-1cbd480d00ba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.9085567} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d33b10eb2cf72a7299b00ebd47b3d0e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"577c8e1d-7316-4aea-a163-43c1be836da5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.914068} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d33b10eb2cf72a7299b00ebd47b3d0e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"0d33b10eb2cf72a7299b00ebd47b3d0e","responseTime":42,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0d33b10eb2cf72a7299b00ebd47b3d0e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ecc69529949b43e8851520c70a923b70","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.914945,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866700,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMH0.98OTqBx_NkV01dYHnWGxklR749ba6y3rcawAcDCmic8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ecc69529949b43e8851520c70a923b70"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ad86da29-e188-4cb1-8356-4600ac7f9e3f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.9401314} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ecc69529949b43e8851520c70a923b70"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b594b5c-521e-4cf5-a857-7fd41724c5c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.9454348} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ecc69529949b43e8851520c70a923b70"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"b9f304dd-c078-4ffd-b044-3d33410a4ba5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.958269} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e8ca246-c987-4427-b34b-3a364d9a9456","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.9583943} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ecc69529949b43e8851520c70a923b70"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"e8aff472-7074-4dd9-9b3b-72a853553649","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866700.9633803} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ecc69529949b43e8851520c70a923b70"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ecc69529949b43e8851520c70a923b70"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"ecc69529949b43e8851520c70a923b70","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"1ec36d3464a63f74127d22debc580c81","responseTime":7,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"69b8710b00fa9259998389e67e425252","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624672,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ec36d3464a63f74127d22debc580c81"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.907907,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69b8710b00fa9259998389e67e425252"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"8881a434-3b0b-4cab-90a2-4bae0416200f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.45116} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ec36d3464a63f74127d22debc580c81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"574edc31-05e8-494f-9989-72d0fa8c0db9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.4518597} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69b8710b00fa9259998389e67e425252"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"48af88fc-f089-40bc-adbd-cbebcd41c192","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.4563603} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ec36d3464a63f74127d22debc580c81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f6185dc9-f75e-4697-9392-be92662384dc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.4574814} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69b8710b00fa9259998389e67e425252"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"fef05bdd-9e05-4510-9e0a-f9aaa846d8ec","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.4615638} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69b8710b00fa9259998389e67e425252"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/bebb0a16-5d75-41b4-967e-b819857698b0 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"69b8710b00fa9259998389e67e425252"} device-1 | {"level":"info","message":"PATCH /devices/bebb0a16-5d75-41b4-967e-b819857698b0 200 22ms","method":"PATCH","requestID":"69b8710b00fa9259998389e67e425252","responseTime":22,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0fbeea36e6dd707e368b649ed8031bd2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641089,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0fbeea36e6dd707e368b649ed8031bd2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"39ef9e0f-290d-4b0e-9ef8-65c08d1169d9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.4904504} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ec36d3464a63f74127d22debc580c81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/bc963ba0-8449-4bb8-9485-db499a80199d 200 55ms","method":"PATCH","requestID":"1ec36d3464a63f74127d22debc580c81","responseTime":55,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/bc963ba0-8449-4bb8-9485-db499a80199d HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.063","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1ec36d3464a63f74127d22debc580c81"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0fbeea36e6dd707e368b649ed8031bd2"} device-1 | {"level":"info","message":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/websocket 200 33ms","method":"POST","requestID":"0fbeea36e6dd707e368b649ed8031bd2","responseTime":33,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fa0f8e1648f5c15b6ace976dd313afce","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.06117,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0f8e1648f5c15b6ace976dd313afce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fa0f8e1648f5c15b6ace976dd313afce"} device-1 | {"level":"info","message":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/websocket 200 21ms","method":"POST","requestID":"fa0f8e1648f5c15b6ace976dd313afce","responseTime":21,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e33c21a4ddf38acd2afa92af8f7d6cb7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.799384,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e33c21a4ddf38acd2afa92af8f7d6cb7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"33124606-0927-43bf-b553-622aeab77c92","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.552431} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e33c21a4ddf38acd2afa92af8f7d6cb7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/bc963ba0-8449-4bb8-9485-db499a80199d? 200 16ms","method":"GET","requestID":"e33c21a4ddf38acd2afa92af8f7d6cb7","responseTime":16,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bc963ba0-8449-4bb8-9485-db499a80199d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e33c21a4ddf38acd2afa92af8f7d6cb7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"74be91e9c4272eb7ac6eb81bbb7e0e41","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.172605,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"74be91e9c4272eb7ac6eb81bbb7e0e41"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"74682cc6-597a-4914-946c-e1bec50d650d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.5740569} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"74be91e9c4272eb7ac6eb81bbb7e0e41"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bebb0a16-5d75-41b4-967e-b819857698b0? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"74be91e9c4272eb7ac6eb81bbb7e0e41"} device-1 | {"level":"info","message":"GET /devices/bebb0a16-5d75-41b4-967e-b819857698b0? 200 17ms","method":"GET","requestID":"74be91e9c4272eb7ac6eb81bbb7e0e41","responseTime":17,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4c8dccbcbee3471296bbdcb2b55baf88","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.806033,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c8dccbcbee3471296bbdcb2b55baf88"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.897392,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2ef8cf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.525609,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2efb400-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"6cae08bd-484f-49d5-b7ad-4045fc8d73c7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.6393192} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2ef8cf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"a4137d59-a552-4148-8d89-61325093f16b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.640086} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2efb400-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/bc963ba0-8449-4bb8-9485-db499a80199d? 200 16ms","method":"GET","requestID":"f2ef8cf0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/bebb0a16-5d75-41b4-967e-b819857698b0? 200 16ms","method":"GET","requestID":"f2efb400-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.447297,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2fa8970-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.280589,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2fad790-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.963829,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"402d0ba5-a71e-461f-ae4f-c88c91d3d843","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7170703} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2fb25b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"e9eb1237-be73-437a-a7ad-5af51073db92","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7229824} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2fa8970-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling 200 21ms","method":"POST","requestID":"f2fb25b0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"b7156d1b-31ad-46df-85aa-0f13e17db81f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7271583} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2fad790-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5b46d0d-a24c-44c1-951a-4f3acdb2fb33#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5b46d0d-a24c-44c1-951a-4f3acdb2fb33","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"3717953b-6bf1-4bc4-8e09-f255233d5ce5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7354057} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2729e73c-d79f-433a-8182-3dd710340a63","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.735576} device-1 | {"level":"info","message":"GET /devices/bc963ba0-8449-4bb8-9485-db499a80199d? 200 34ms","method":"GET","requestID":"f2fa8970-0158-11ef-926d-7f5be4425d00","responseTime":34,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/bebb0a16-5d75-41b4-967e-b819857698b0? 200 34ms","method":"GET","requestID":"f2fad790-0158-11ef-926d-7f5be4425d00","responseTime":34,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c8dccbcbee3471296bbdcb2b55baf88"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"805e6ba1-24c9-45d9-88f3-7ea614e256a6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7395701} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.087252,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","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 called"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2fef640-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling 200 18ms","method":"POST","requestID":"f2fef640-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11feff58-0763-4585-9fd5-8dbcd8c0b2d4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7499466} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.315903,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","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/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f300a3f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c8dccbcbee3471296bbdcb2b55baf88"} experiment-1 | {"level":"info","message":"POST /experiments? 201 167ms","method":"POST","requestID":"4c8dccbcbee3471296bbdcb2b55baf88","responseTime":167,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling 200 13ms","method":"POST","requestID":"f300a3f0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b504a91f0070b1235b260ac185f9d1bf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.80424,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b504a91f0070b1235b260ac185f9d1bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"54adcabc-4590-411c-8e91-aea5c1564a55","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7647355} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.513114,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f3033c00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling 200 9ms","method":"POST","requestID":"f3033c00-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.908431960Z"}]},"request_id":"975ceb73-bbad-458f-bfee-df07e11c317c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7689605} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Building connection plan"} 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":"69f4290e-7d89-4ad5-afb6-91f0b1c93d96"},{"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":"166aa8f6-475c-46fc-8701-8ac7d472edd5"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"993e2ae0-69c3-4dca-835e-9c61a0c3966c"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b504a91f0070b1235b260ac185f9d1bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bc963ba0-8449-4bb8-9485-db499a80199d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b504a91f0070b1235b260ac185f9d1bf"} device-1 | {"level":"info","message":"GET /devices/bc963ba0-8449-4bb8-9485-db499a80199d? 200 18ms","method":"GET","requestID":"b504a91f0070b1235b260ac185f9d1bf","responseTime":18,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.795876,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f30537d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"febe7ea7b40612a8a3099b81bc00b103","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.755016,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"febe7ea7b40612a8a3099b81bc00b103"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"cca5ad8a-222c-4740-a5bc-48a4d66b47e9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7888916} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"211f776b-5fff-4935-8ea5-c57fc6e2332a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.7893357} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:00.958245302Z"}]},"request_id":"db768cf1-980b-4587-8f44-b5b4c841d7fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.790149} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f30537d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"febe7ea7b40612a8a3099b81bc00b103"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bebb0a16-5d75-41b4-967e-b819857698b0? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"febe7ea7b40612a8a3099b81bc00b103"} device-1 | {"level":"info","message":"GET /devices/bebb0a16-5d75-41b4-967e-b819857698b0? 200 14ms","method":"GET","requestID":"febe7ea7b40612a8a3099b81bc00b103","responseTime":14,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"f30537d0-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully created peerconnections for experiment"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"096e3169028b58d453c6814ddc99c2d0","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"462e88b2-fb8d-4070-afca-ef8f69ffe326","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.8566046} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"096e3169028b58d453c6814ddc99c2d0","responseTime":7,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.431647,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"096e3169028b58d453c6814ddc99c2d0"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f3111eb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling 200 15ms","method":"POST","requestID":"f3111eb0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c5f6a3a-432f-42c2-a050-7ef54f65e369","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.8755019} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.468608,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f31404e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling 200 11ms","method":"POST","requestID":"f31404e0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","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/fc2a0072-f478-4add-88e3-6aa581c4189f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fd3418d64804840a7d6455bac7f6299f","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc2a0072-f478-4add-88e3-6aa581c4189f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"328656a6-455c-44a9-aa0e-169a6ab8a90f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.9055765} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.173071,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f318bfd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f 200 8ms","method":"GET","requestID":"f318bfd0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"fd3418d64804840a7d6455bac7f6299f","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"fd3418d64804840a7d6455bac7f6299f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00e6335f-b009-4ead-8144-75dfa8d6d28a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.9285932} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.206051,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f31c4240-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling 200 9ms","method":"POST","requestID":"f31c4240-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"81ef2cd6-c22e-4def-a2b7-d93b01084ee6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866701.9397054} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.387714,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f31deff0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling 200 9ms","method":"POST","requestID":"f31deff0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d89a914df4175dc0d8eb10f5e1b54779","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.197885,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866701,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMX0.FMoPzUV6wYYLYC0CmQUPnnL4sbhgJgiCtepFbutHphY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d89a914df4175dc0d8eb10f5e1b54779"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"} gateway-1 | {"time_local":"23/Apr/2024:10:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d89a914df4175dc0d8eb10f5e1b54779"} experiment-1 | {"level":"info","message":"GET /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33 200 18ms","method":"GET","requestID":"d89a914df4175dc0d8eb10f5e1b54779","responseTime":18,"status":200,"url":"/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ba768c5e422509d4e048fb376bb586a4","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.118914,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866702,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ba768c5e422509d4e048fb376bb586a4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.153901,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866702,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f32d5940-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc2a0072-f478-4add-88e3-6aa581c4189f': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc2a0072-f478-4add-88e3-6aa581c4189f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"dd937e5e-917e-4d2c-8847-d036845d1e7b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.062019} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3f0fc347119ba36e66bf15a25d4f39c8","responseTime":2,"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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da918650-0d91-4b3f-85f6-054962ab9cd3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.0624633} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"21e10305d0c8b3d50967f8dd694ec200","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f32d5940-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"fc2a0072-f478-4add-88e3-6aa581c4189f","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f 204 50ms","method":"DELETE","requestID":"f32d5940-0158-11ef-926d-7f5be4425d00","responseTime":50,"status":204,"url":"/peerconnections/fc2a0072-f478-4add-88e3-6aa581c4189f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbebb0a16-5d75-41b4-967e-b819857698b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a888c09a-96d6-4f7e-8fb0-fc8c84cd2c6f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.1163025} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.875872,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f33855c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling 200 16ms","method":"POST","requestID":"f33855c0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/bebb0a16-5d75-41b4-967e-b819857698b0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc963ba0-8449-4bb8-9485-db499a80199d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"172d02c9-2699-4247-8863-8d09314a4a40","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.1344275} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5b46d0d-a24c-44c1-951a-4f3acdb2fb33': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5b46d0d-a24c-44c1-951a-4f3acdb2fb33","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"5289ce57-e752-4915-8980-cf430f4a4fd1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.134738} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9cd3ed2b-ef8d-457d-9172-ddd66615899d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.135422} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.456776,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f33b3bf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ba768c5e422509d4e048fb376bb586a4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":32}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling 200 17ms","method":"POST","requestID":"f33b3bf0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/bc963ba0-8449-4bb8-9485-db499a80199d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"} gateway-1 | {"time_local":"23/Apr/2024:10:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ba768c5e422509d4e048fb376bb586a4"} experiment-1 | {"level":"info","message":"DELETE /experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33 204 182ms","method":"DELETE","requestID":"ba768c5e422509d4e048fb376bb586a4","responseTime":182,"status":204,"url":"/experiments/e5b46d0d-a24c-44c1-951a-4f3acdb2fb33"} gateway-1 | {"time_local":"23/Apr/2024:10:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.678","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2fd11e90d520df3fc09be71459a1d0c7"} gateway-1 | {"time_local":"23/Apr/2024:10:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2199","request_time":"0.699","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"adde26cc3031a88071723b8c900d930a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"3f0fc347119ba36e66bf15a25d4f39c8","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"3f0fc347119ba36e66bf15a25d4f39c8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"21e10305d0c8b3d50967f8dd694ec200","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"21e10305d0c8b3d50967f8dd694ec200"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eaf1fcc052f6f549a09980527b391b85","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/bebb0a16-5d75-41b4-967e-b819857698b0' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.646383,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866702,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eaf1fcc052f6f549a09980527b391b85"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/bc963ba0-8449-4bb8-9485-db499a80199d' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fd79d01f-c5cb-4df0-9100-a3367ebd2820","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2293313} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eaf1fcc052f6f549a09980527b391b85"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6598148d-5579-45f8-ba9b-f20180ef2338","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2354887} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eaf1fcc052f6f549a09980527b391b85"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41bfe6a2-0d4e-4a10-b6bd-3096734ddb8a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2463634} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7093c627-c488-4a15-8815-57bdf9fa3292","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2469099} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eaf1fcc052f6f549a09980527b391b85"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.246878013Z"}]},"request_id":"22b37e66-e414-4285-a210-c04c9d1becd2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2524045} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eaf1fcc052f6f549a09980527b391b85"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eaf1fcc052f6f549a09980527b391b85"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"eaf1fcc052f6f549a09980527b391b85","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bc87e09b264324f4629b079cd60886e4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.854491,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866702,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwMn0.AQ4vhXwbldlpk4o7ath-TayP8IUSM4iANWip0VfFfHM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc87e09b264324f4629b079cd60886e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fd8df7dc-b0c3-469b-81b9-aff062bbc0d7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2800276} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc87e09b264324f4629b079cd60886e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4bf4da3-9eec-4b06-a712-9f685b111c13","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.285144} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc87e09b264324f4629b079cd60886e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"744d5bae-9891-4e91-bdd9-ff0ba26b4326","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2953932} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b5254d2f-4e1f-417d-9312-d7c9ea854577","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.2956882} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc87e09b264324f4629b079cd60886e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.295366317Z"}]},"request_id":"e661a192-35da-40a9-a068-7ad1c99b50e5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866702.3002958} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc87e09b264324f4629b079cd60886e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bc87e09b264324f4629b079cd60886e4"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"bc87e09b264324f4629b079cd60886e4","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"cf5cf6d6a4ff07d9a60db8a6dfd08cd0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/20672419-3d38-42d9-a571-f899ef21a15d/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":"cf5cf6d6a4ff07d9a60db8a6dfd08cd0"} device-1 | {"level":"info","message":"OPTIONS /devices/20672419-3d38-42d9-a571-f899ef21a15d/websocket 200 1ms","method":"OPTIONS","requestID":"cf5cf6d6a4ff07d9a60db8a6dfd08cd0","responseTime":1,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"7db173f3193dc76e97fec857e65c97d7","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/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":"7db173f3193dc76e97fec857e65c97d7"} device-1 | {"level":"info","message":"OPTIONS /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/websocket 200 0ms","method":"OPTIONS","requestID":"7db173f3193dc76e97fec857e65c97d7","responseTime":0,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d29a5618f1f60c4d15ed13afd20ff57","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"99c5549419c4f024f722fa1dcd946a89","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.021207,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d29a5618f1f60c4d15ed13afd20ff57"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744817,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"99c5549419c4f024f722fa1dcd946a89"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.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":"3d29a5618f1f60c4d15ed13afd20ff57"} device-1 | {"level":"info","message":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/websocket 200 32ms","method":"POST","requestID":"3d29a5618f1f60c4d15ed13afd20ff57","responseTime":32,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/websocket 200 41ms","method":"POST","requestID":"99c5549419c4f024f722fa1dcd946a89","responseTime":41,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"99c5549419c4f024f722fa1dcd946a89"} device-1 | {"level":"info","message":"device 'http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"437ead85453cba3fc0c96492f7d37d5f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641401,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"437ead85453cba3fc0c96492f7d37d5f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.246878013Z"}]},"request_id":"a9032c61-0a90-486e-afba-884cfdcd9dea","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.367077} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"437ead85453cba3fc0c96492f7d37d5f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/20672419-3d38-42d9-a571-f899ef21a15d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"437ead85453cba3fc0c96492f7d37d5f"} device-1 | {"level":"info","message":"GET /devices/20672419-3d38-42d9-a571-f899ef21a15d? 200 16ms","method":"GET","requestID":"437ead85453cba3fc0c96492f7d37d5f","responseTime":16,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fa95ad91c41aaf432c4f5fcb361d2899","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.269547,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa95ad91c41aaf432c4f5fcb361d2899"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.295366317Z"}]},"request_id":"10106aad-ac0d-4c8c-82db-34c3e2079e95","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.3888087} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa95ad91c41aaf432c4f5fcb361d2899"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa95ad91c41aaf432c4f5fcb361d2899"} device-1 | {"level":"info","message":"GET /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05? 200 17ms","method":"GET","requestID":"fa95ad91c41aaf432c4f5fcb361d2899","responseTime":17,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e34eaf2cbd32c8dbe466e1863982e8c7","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.691697,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e34eaf2cbd32c8dbe466e1863982e8c7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248832,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f49f11b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.150684,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f49f5fd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.246878013Z"}]},"request_id":"1e78ebcf-77b2-4c55-868f-c9a2b1a343e7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.4731703} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f49f11b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.295366317Z"}]},"request_id":"c76ba282-3d86-4b5c-8648-d86c1358e9fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.475892} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f49f5fd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/20672419-3d38-42d9-a571-f899ef21a15d? 200 25ms","method":"GET","requestID":"f49f11b0-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05? 200 24ms","method":"GET","requestID":"f49f5fd0-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.681161,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4ab94d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.285787,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4abe2f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.343114,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"db233791-8eac-43b0-918c-847f94064d68","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.5547626} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4ac3110-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.246878013Z"}]},"request_id":"c311374c-8af3-4949-ad54-95c28831b4cb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.5622532} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling 200 23ms","method":"POST","requestID":"f4ac3110-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4ab94d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.295366317Z"}]},"request_id":"a6e2b314-94fc-4007-9807-dbe001560281","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.5678954} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4abe2f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd4d4ba-0446-41ec-b3ae-86f7cc34f093#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"b4af03d7-f311-46d1-b213-c997cd2a497a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.575783} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/20672419-3d38-42d9-a571-f899ef21a15d? 200 38ms","method":"GET","requestID":"f4ab94d0-0158-11ef-926d-7f5be4425d00","responseTime":38,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05? 200 38ms","method":"GET","requestID":"f4abe2f0-0158-11ef-926d-7f5be4425d00","responseTime":38,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eab56b4a-23d9-436a-92e2-4c98727329f9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.5762842} authorization-1 | {"level":"info","message":"POST /relations/update 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e34eaf2cbd32c8dbe466e1863982e8c7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"37c90ac8-5846-4993-bbd8-43afd177d4e1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.5827086} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.697302,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4b09de0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e34eaf2cbd32c8dbe466e1863982e8c7"} experiment-1 | {"level":"info","message":"POST /experiments? 201 190ms","method":"POST","requestID":"e34eaf2cbd32c8dbe466e1863982e8c7","responseTime":190,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling 200 19ms","method":"POST","requestID":"f4b09de0-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"820f17e9-66f0-4e82-856a-aaec6a1ed403","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.5945308} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.49288,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4b24b90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e64f185f29320cc6de12491a83956d61","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling 200 19ms","method":"POST","requestID":"f4b24b90-0158-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.359055,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e64f185f29320cc6de12491a83956d61"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.246878013Z"}]},"request_id":"b03dad99-0d40-49f7-9261-8e85124f05c5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.6122887} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"64c18f28-c075-4703-8520-ae8871354195","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.6125062} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e64f185f29320cc6de12491a83956d61"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.886129,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4b5a6f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/20672419-3d38-42d9-a571-f899ef21a15d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e64f185f29320cc6de12491a83956d61"} device-1 | {"level":"info","message":"GET /devices/20672419-3d38-42d9-a571-f899ef21a15d? 200 18ms","method":"GET","requestID":"e64f185f29320cc6de12491a83956d61","responseTime":18,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling 200 13ms","method":"POST","requestID":"f4b5a6f0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Building connection plan"} 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":"abcacb99-d46c-4e1d-a8f7-6e88a1a85e19"},{"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":"4f17bb29-2cf8-461e-bcbf-f9ffac7802de"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ee1bdf9d-28f8-442b-a991-faae3b3d7b91"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2d1214c6d903b6ebaad176bf5e225924","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.005715,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4b83f00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.010961,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866704,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNH0.r0matwQWE6aLHYCk6dca8wWilf_N_ZL9DdOWRiAhjb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d1214c6d903b6ebaad176bf5e225924"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:02.295366317Z"}]},"request_id":"ed36b66e-9d31-4839-a9b1-273a33cfd3ab","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.6368847} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d1214c6d903b6ebaad176bf5e225924"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"3c752184-600c-4f2f-8dac-755c0e275a09","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.64204} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d1214c6d903b6ebaad176bf5e225924"} device-1 | {"level":"info","message":"GET /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05? 200 17ms","method":"GET","requestID":"2d1214c6d903b6ebaad176bf5e225924","responseTime":17,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"abe23171-5155-46b3-9f30-8cb61bbd311f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.6424057} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4b83f00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"f4b83f00-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef3e398d-57a3-42cd-aad9-c50039344c72","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.7120955} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.427435,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4c4e930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling 200 10ms","method":"POST","requestID":"f4c4e930-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4143c97-8f58-4db0-84a1-eb468ea15dc6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.7227285} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.99764,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4c6bdf0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling 200 7ms","method":"POST","requestID":"f4c6bdf0-0158-11ef-926d-7f5be4425d00","responseTime":7,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"997de4d50a57a65b8f4bbbfed2461909","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"997de4d50a57a65b8f4bbbfed2461909","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +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":"997de4d50a57a65b8f4bbbfed2461909"} device-1 | {"data":{"peerconnection":"db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","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/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b8520d90a6bf247ad26ad539ee188609","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdb3a17b0-66f2-4b7b-bae2-c3fb1c51a395","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6650ed14-aad7-4dfe-bee5-1b9bd92c9147","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.9448824} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.689765,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4e828a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395 200 13ms","method":"GET","requestID":"f4e828a0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"b8520d90a6bf247ad26ad539ee188609","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:04 +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.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"b8520d90a6bf247ad26ad539ee188609"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"216f0d9e-53ed-45fd-b894-8a836227038f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.9782815} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.480748,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4ed7fd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling 200 11ms","method":"POST","requestID":"f4ed7fd0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f5c05e67-bfd1-444c-bcfd-7654a906706e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866704.9914434} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.646318,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4efa2b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling 200 11ms","method":"POST","requestID":"f4efa2b0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"33cc112b2e49ce0e131724deb2c2297c","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.079045,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866705,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33cc112b2e49ce0e131724deb2c2297c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"} gateway-1 | {"time_local":"23/Apr/2024:10:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"33cc112b2e49ce0e131724deb2c2297c"} experiment-1 | {"level":"info","message":"GET /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093 200 16ms","method":"GET","requestID":"33cc112b2e49ce0e131724deb2c2297c","responseTime":16,"status":200,"url":"/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"79bd302a6b7f271e574a86da39120f86","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.189334,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866705,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79bd302a6b7f271e574a86da39120f86"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.02214,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866705,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4fd1030-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdb3a17b0-66f2-4b7b-bae2-c3fb1c51a395': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdb3a17b0-66f2-4b7b-bae2-c3fb1c51a395","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"2eb403a0-68bf-4db2-9061-604253be1bc5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.0995445} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"091fabc1efc4b8674fe6d1f8a752ee84","responseTime":2,"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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9b2d83e-7784-405c-a5be-21c3a2345db4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.1001546} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4fd1030-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"1039b5d9da44f212203c700be9009a89","responseTime":2,"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"db3a17b0-66f2-4b7b-bae2-c3fb1c51a395","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395 204 59ms","method":"DELETE","requestID":"f4fd1030-0158-11ef-926d-7f5be4425d00","responseTime":59,"status":204,"url":"/peerconnections/db3a17b0-66f2-4b7b-bae2-c3fb1c51a395"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F20672419-3d38-42d9-a571-f899ef21a15d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"50914def-b468-4e01-adee-d2927cca4ae6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.170123} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.011142,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f50a56a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling 200 14ms","method":"POST","requestID":"f50a56a0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/20672419-3d38-42d9-a571-f899ef21a15d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd4d4ba-0446-41ec-b3ae-86f7cc34f093': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd4d4ba-0446-41ec-b3ae-86f7cc34f093","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"54b1817e-e579-49c0-bafc-78d216ef1626","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.182923} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe1ebf880-0358-48e2-9b2d-b6ae4e24da05","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a0e7d33-9c6d-4975-9df4-cdd147c0e59f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.18311} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f29331c0-122f-41ff-8fca-d2686702b3fb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.1831894} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.389173,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f50cc7a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79bd302a6b7f271e574a86da39120f86"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling 200 11ms","method":"POST","requestID":"f50cc7a0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"} gateway-1 | {"time_local":"23/Apr/2024:10:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"79bd302a6b7f271e574a86da39120f86"} experiment-1 | {"level":"info","message":"DELETE /experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093 204 180ms","method":"DELETE","requestID":"79bd302a6b7f271e574a86da39120f86","responseTime":180,"status":204,"url":"/experiments/8fd4d4ba-0446-41ec-b3ae-86f7cc34f093"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"091fabc1efc4b8674fe6d1f8a752ee84","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"091fabc1efc4b8674fe6d1f8a752ee84"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"1039b5d9da44f212203c700be9009a89","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"1039b5d9da44f212203c700be9009a89"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1d0a0ca7efedcb9dd988d5805e7e6be6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2400","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":"a82fa9205813d94de36a6f775ce62f3a"} gateway-1 | {"time_local":"23/Apr/2024:10:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2263","request_time":"0.916","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0b0dad7c729426842ce7c995b1d1dd7c"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/20672419-3d38-42d9-a571-f899ef21a15d' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e1ebf880-0358-48e2-9b2d-b6ae4e24da05' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.643694,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866705,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0a0ca7efedcb9dd988d5805e7e6be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4a995bf3-e9f0-4826-9a5c-b30de62965e3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.2696538} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0a0ca7efedcb9dd988d5805e7e6be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d3f25ff-8fbe-424f-9acd-ad90d8be70df","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.2739074} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0a0ca7efedcb9dd988d5805e7e6be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"1c2112c7-a864-4ab8-9b37-821a31945da8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.284528} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c856638e-a1bf-443c-a3f5-e2fbc45f69b0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.2847133} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0a0ca7efedcb9dd988d5805e7e6be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.284505036Z"}]},"request_id":"84a918f3-0ee9-49b7-b4b0-6dac81c09190","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.2890506} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0a0ca7efedcb9dd988d5805e7e6be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1d0a0ca7efedcb9dd988d5805e7e6be6"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"1d0a0ca7efedcb9dd988d5805e7e6be6","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"578fadea5c0de6f1fa1b9897e4467746","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.791732,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866705,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwNX0.RyKhYzgRpoCiLQ1KY9iEB2gVT2PH2z6dSSDEWmYUUlY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"578fadea5c0de6f1fa1b9897e4467746"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0b033ed5-d0cd-46e5-8f95-3f5b78452705","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.3135417} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"578fadea5c0de6f1fa1b9897e4467746"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b9ac7b1-e255-47ff-800c-b7effb9a7a35","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.3177023} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"578fadea5c0de6f1fa1b9897e4467746"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"add0e378-ae56-4158-82b0-1c4c3bc24610","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.327716} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a34e0c71-b4b9-4147-903b-a5b6d81aac4f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.3278542} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"578fadea5c0de6f1fa1b9897e4467746"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.327692634Z"}]},"request_id":"d80f4905-b339-4839-b320-85886a66aa4c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866705.3318186} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"578fadea5c0de6f1fa1b9897e4467746"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"578fadea5c0de6f1fa1b9897e4467746"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"578fadea5c0de6f1fa1b9897e4467746","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d5503717d536bc62a6f1f12c116f85ff","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/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":"d5503717d536bc62a6f1f12c116f85ff"} device-1 | {"level":"info","message":"OPTIONS /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/websocket 200 1ms","method":"OPTIONS","requestID":"d5503717d536bc62a6f1f12c116f85ff","responseTime":1,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"23725dd59fbcc0a11436f314893978b3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"53d90ad3b4323b6c8212d16dacc657d7","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/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":"53d90ad3b4323b6c8212d16dacc657d7"} device-1 | {"level":"info","message":"OPTIONS /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/websocket 200 1ms","method":"OPTIONS","requestID":"53d90ad3b4323b6c8212d16dacc657d7","responseTime":1,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/websocket"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671577,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"23725dd59fbcc0a11436f314893978b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a87b68ed54a097cfe45ea0a02688b9a3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.256672,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a87b68ed54a097cfe45ea0a02688b9a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/websocket 200 35ms","method":"POST","requestID":"23725dd59fbcc0a11436f314893978b3","responseTime":35,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"23725dd59fbcc0a11436f314893978b3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a87b68ed54a097cfe45ea0a02688b9a3"} device-1 | {"level":"info","message":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/websocket 200 36ms","method":"POST","requestID":"a87b68ed54a097cfe45ea0a02688b9a3","responseTime":36,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3ac3f5f80e4d3f65a51dfe873fec53a7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.882752,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ac3f5f80e4d3f65a51dfe873fec53a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.284505036Z"}]},"request_id":"de526c27-35dd-422a-a6a0-6acf8edcf10e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.427029} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ac3f5f80e4d3f65a51dfe873fec53a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7? 200 26ms","method":"GET","requestID":"3ac3f5f80e4d3f65a51dfe873fec53a7","responseTime":26,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3ac3f5f80e4d3f65a51dfe873fec53a7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0b93f6f5635cd333f8b04efdd867eee9","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.499739,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b93f6f5635cd333f8b04efdd867eee9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.327692634Z"}]},"request_id":"1e8e1765-8269-40c7-851f-20589c948337","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.460403} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b93f6f5635cd333f8b04efdd867eee9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350? 200 19ms","method":"GET","requestID":"0b93f6f5635cd333f8b04efdd867eee9","responseTime":19,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0b93f6f5635cd333f8b04efdd867eee9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"66eddc2631b653ae8ed7ea3386101f30","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.212437,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66eddc2631b653ae8ed7ea3386101f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.956732,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6729930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.071079,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f672e750-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.284505036Z"}]},"request_id":"231cb7b5-5f51-43ea-8849-d07fc0186d47","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.536879} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6729930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.327692634Z"}]},"request_id":"690db40c-48c7-4896-9560-ed745304f36b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.538558} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f672e750-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7? 200 21ms","method":"GET","requestID":"f6729930-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350? 200 20ms","method":"GET","requestID":"f672e750-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.018135,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f67e31f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.093371,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f67e5900-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.064156,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98a1a977-0239-4cc6-8c79-8eda93e7ac2d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6085336} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f67ea720-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.284505036Z"}]},"request_id":"2245dfc1-9688-4005-9156-0bfbace039ff","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6126409} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f67e31f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.327692634Z"}]},"request_id":"f20d3d36-1022-45ea-a528-a3be8ee410f7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6156864} device-1 | {"level":"info","message":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling 200 14ms","method":"POST","requestID":"f67ea720-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f67e5900-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7? 200 24ms","method":"GET","requestID":"f67e31f0-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6f228445-60d9-48a7-8f65-735629a9cc00#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6f228445-60d9-48a7-8f65-735629a9cc00","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"8142dd97-37d7-4c63-ae82-3ed0ea95e342","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6238732} device-1 | {"level":"info","message":"GET /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350? 200 24ms","method":"GET","requestID":"f67e5900-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2fdfc17a-7f37-4235-bbf7-1056556cc121","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6242235} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66eddc2631b653ae8ed7ea3386101f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8fd34eda-af4b-4b09-952e-41aac049e779","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6265848} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.457487,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6816640-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling 200 11ms","method":"POST","requestID":"f6816640-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57ab8590-2776-49ad-ae5d-581324150a57","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.631802} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.817495,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","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":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.165","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"66eddc2631b653ae8ed7ea3386101f30"} experiment-1 | {"level":"info","message":"POST /experiments? 201 159ms","method":"POST","requestID":"66eddc2631b653ae8ed7ea3386101f30","responseTime":159,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f68250a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling 200 11ms","method":"POST","requestID":"f68250a0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4550f056236f3f99149999a663555834","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664377,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4550f056236f3f99149999a663555834"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae23c2f4-2572-4e94-be7f-c69e7bb6c201","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6433551} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.538284,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6842560-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.284505036Z"}]},"request_id":"17bffe68-cdc7-46fb-ade6-7e92748121a1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6482072} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling 200 10ms","method":"POST","requestID":"f6842560-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4550f056236f3f99149999a663555834"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Building connection plan"} 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":"d44dd528-b567-400f-9656-f094d7a649ca"},{"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":"7ccf8c8e-22f8-4ea4-97db-d5794b65d464"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bea202ce-9e04-40ac-90b9-4a2faf0abd95"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4550f056236f3f99149999a663555834"} device-1 | {"level":"info","message":"GET /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7? 200 13ms","method":"GET","requestID":"4550f056236f3f99149999a663555834","responseTime":13,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.645277,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6862130-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e4c201d94627e1af0d8bbe862a3a572b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642972,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866707,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwN30.ea9OZSbEoh8OEFUEsduPRJgquNeqfTKqhl1t0IocJ2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4c201d94627e1af0d8bbe862a3a572b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"0351c897-a863-4293-90ec-048654ccb2fe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6651988} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"81d585bf-aff4-4832-b7ef-be0e4f0dd643","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.665379} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:05.327692634Z"}]},"request_id":"b80e2148-92f3-4210-ba72-182d831ea35e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.6659613} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4c201d94627e1af0d8bbe862a3a572b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6862130-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350? 200 13ms","method":"GET","requestID":"e4c201d94627e1af0d8bbe862a3a572b","responseTime":13,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e4c201d94627e1af0d8bbe862a3a572b"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"f6862130-0158-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"86c1826c-24ee-4c5e-9557-6edda5c7d4fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.728882} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.4345,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f69144c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling 200 10ms","method":"POST","requestID":"f69144c0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e375a2bd-abc1-4706-a9ee-9cceabd9826c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.740318} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.445146,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6931980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling 200 8ms","method":"POST","requestID":"f6931980-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fbfa09db-3623-4892-882c-b9bcd1d0acc1","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"dc5270410b6d27a59d7aef19c7fd94bd","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"dc5270410b6d27a59d7aef19c7fd94bd","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.016","http_referrer":"","http_user_agent":"node-fetch","requestID":"dc5270410b6d27a59d7aef19c7fd94bd"} device-1 | {"data":{"peerconnection":"fbfa09db-3623-4892-882c-b9bcd1d0acc1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fbfa09db-3623-4892-882c-b9bcd1d0acc1","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/fbfa09db-3623-4892-882c-b9bcd1d0acc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fbfa09db-3623-4892-882c-b9bcd1d0acc1","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"57e64d0574b55d25a52532d89ba32abe","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffbfa09db-3623-4892-882c-b9bcd1d0acc1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e14d4055-25de-4bc3-9d48-5908b00ff07c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.9600275} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.192021,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6b45d20-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1 200 11ms","method":"GET","requestID":"f6b45d20-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"57e64d0574b55d25a52532d89ba32abe","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"57e64d0574b55d25a52532d89ba32abe"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"467abb04-8834-466f-b0df-da836619d450","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866707.9920952} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.190602,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6b91810-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling 200 12ms","method":"POST","requestID":"f6b91810-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"976544b8-c9e5-4fd8-a9b7-fd7dabe3c44b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.0075893} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.721983,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6bb6200-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling 200 15ms","method":"POST","requestID":"f6bb6200-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4894ca9a237787c0c84d36605d7896aa","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6f228445-60d9-48a7-8f65-735629a9cc00"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.202627,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4894ca9a237787c0c84d36605d7896aa"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6f228445-60d9-48a7-8f65-735629a9cc00"} experiment-1 | {"level":"info","message":"GET /experiments/6f228445-60d9-48a7-8f65-735629a9cc00 200 16ms","method":"GET","requestID":"4894ca9a237787c0c84d36605d7896aa","responseTime":16,"status":200,"url":"/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6f228445-60d9-48a7-8f65-735629a9cc00 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4894ca9a237787c0c84d36605d7896aa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"211b823d9958b1e61dcca00f3a89165d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6f228445-60d9-48a7-8f65-735629a9cc00"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.258836,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"211b823d9958b1e61dcca00f3a89165d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.246968,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6c992d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fbfa09db-3623-4892-882c-b9bcd1d0acc1","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffbfa09db-3623-4892-882c-b9bcd1d0acc1': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffbfa09db-3623-4892-882c-b9bcd1d0acc1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"6ac684eb-c575-43e0-9a95-6be46ea23376","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.1168466} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32c55f94-c71f-4c4b-bf16-c45827e9696c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.117559} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6c992d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d588c139a049a9b630f8944764407a50","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0678136eab23c370a0a3fcebdf1247cc","responseTime":2,"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"fbfa09db-3623-4892-882c-b9bcd1d0acc1","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1 204 57ms","method":"DELETE","requestID":"f6c992d0-0158-11ef-926d-7f5be4425d00","responseTime":57,"status":204,"url":"/peerconnections/fbfa09db-3623-4892-882c-b9bcd1d0acc1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F31926b02-b505-4aa0-bf1f-dc2419d561c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce6dc162-6c90-451f-abf7-68dab1abce9d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.1795936} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.37985,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6d5c7d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling 200 14ms","method":"POST","requestID":"f6d5c7d0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6f228445-60d9-48a7-8f65-735629a9cc00': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6f228445-60d9-48a7-8f65-735629a9cc00","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"0d4e4fe2-eeac-4b39-9d8e-44c630c62d63","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.1921434} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6b9ca98-9a2a-479a-ab97-475265cb5578","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.192408} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"211b823d9958b1e61dcca00f3a89165d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f506c16-a4f9-43ac-af04-e7b82e7c9350","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1420a7cd-2255-4501-bad1-d04d2bd009ea","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.1965752} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.917446,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6d838d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling 200 15ms","method":"POST","requestID":"f6d838d0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6f228445-60d9-48a7-8f65-735629a9cc00"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6f228445-60d9-48a7-8f65-735629a9cc00 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"211b823d9958b1e61dcca00f3a89165d"} experiment-1 | {"level":"info","message":"DELETE /experiments/6f228445-60d9-48a7-8f65-735629a9cc00 204 181ms","method":"DELETE","requestID":"211b823d9958b1e61dcca00f3a89165d","responseTime":181,"status":204,"url":"/experiments/6f228445-60d9-48a7-8f65-735629a9cc00"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"d588c139a049a9b630f8944764407a50","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"d588c139a049a9b630f8944764407a50"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"0678136eab23c370a0a3fcebdf1247cc","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"0678136eab23c370a0a3fcebdf1247cc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2a0a4b57d17122b96a410ac75fc033e0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2396","request_time":"0.890","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9abd356219cf2cdcd64de022385769de"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2262","request_time":"0.878","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"10182d534c3e22ed5cd6469153f82cb1"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.89156,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a0a4b57d17122b96a410ac75fc033e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/31926b02-b505-4aa0-bf1f-dc2419d561c7' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2f506c16-a4f9-43ac-af04-e7b82e7c9350' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"120a6aa5-a2a9-4a50-b685-59876226f007","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.2831478} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a0a4b57d17122b96a410ac75fc033e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"accab5ee-87e6-40c1-a712-1578bbf1c7c7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.2874482} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a0a4b57d17122b96a410ac75fc033e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4880721-08bc-4f4a-bde0-98351eec501d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.2961478} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"d0964d67-b955-4b97-b64a-8377e79046b9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.2962258} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a0a4b57d17122b96a410ac75fc033e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.296201376Z"}]},"request_id":"f756d5ce-53e7-4ab7-855d-9e33ef2a2cf6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.2997394} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a0a4b57d17122b96a410ac75fc033e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"2a0a4b57d17122b96a410ac75fc033e0","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a0a4b57d17122b96a410ac75fc033e0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f59ee578450a710e4e2b4e6bcad8abbc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.71904,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f59ee578450a710e4e2b4e6bcad8abbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6aa935c0-b4fe-4ddb-ac39-fe26433af165","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.3225257} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f59ee578450a710e4e2b4e6bcad8abbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3471b12-125f-4fab-b436-5351d1cf8d52","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.3267312} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f59ee578450a710e4e2b4e6bcad8abbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"96db2de1-22db-4cd9-87a7-a6cfafffb367","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.3383832} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b83aa316-d79a-4120-a213-720241730fa0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.3385527} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f59ee578450a710e4e2b4e6bcad8abbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"29a37dbd-cfd7-4869-9fe1-15357b92ceed","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.343636} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f59ee578450a710e4e2b4e6bcad8abbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"f59ee578450a710e4e2b4e6bcad8abbc","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f59ee578450a710e4e2b4e6bcad8abbc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"59175017a5763c69946792692bf4a1d8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.960412,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59175017a5763c69946792692bf4a1d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"657f336b-a5ea-4fd9-abe9-f8fc0b744fbf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.8370974} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59175017a5763c69946792692bf4a1d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1400a3dc-2f01-4f7c-aa70-cb0f6f0a2599","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.844477} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59175017a5763c69946792692bf4a1d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"10876c62-2b36-43e9-a096-45b16738f127","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866708.8675013} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59175017a5763c69946792692bf4a1d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34 200 47ms","method":"PATCH","requestID":"59175017a5763c69946792692bf4a1d8","responseTime":47,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"59175017a5763c69946792692bf4a1d8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fab8a74c5420122a365d35001a663568","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.167486,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866708,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcwOH0.vFdv3L_qYPW_ApyeinjRDeTs_CTbD9pYfdBfhLIjpZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fab8a74c5420122a365d35001a663568"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fab8a74c5420122a365d35001a663568"} device-1 | {"level":"info","message":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/websocket 200 26ms","method":"POST","requestID":"fab8a74c5420122a365d35001a663568","responseTime":26,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4a795b9711d146f4092dea470f8de0e9","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/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":"4a795b9711d146f4092dea470f8de0e9"} device-1 | {"level":"info","message":"OPTIONS /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/websocket 200 1ms","method":"OPTIONS","requestID":"4a795b9711d146f4092dea470f8de0e9","responseTime":1,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"df1733e6acbd372de3598f875ce0425b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.268527,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1733e6acbd372de3598f875ce0425b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/websocket 200 32ms","method":"POST","requestID":"df1733e6acbd372de3598f875ce0425b","responseTime":32,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/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":"df1733e6acbd372de3598f875ce0425b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"58a083d176988d11a5132e4a9463677e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.282916,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58a083d176988d11a5132e4a9463677e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.296201376Z"}]},"request_id":"5722bb77-97cb-4d52-be1f-efae1014b0e2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.4205067} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58a083d176988d11a5132e4a9463677e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"58a083d176988d11a5132e4a9463677e"} device-1 | {"level":"info","message":"GET /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8? 200 18ms","method":"GET","requestID":"58a083d176988d11a5132e4a9463677e","responseTime":18,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6a68354f4bd54056ae06b137fdff97fb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.173575,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6a68354f4bd54056ae06b137fdff97fb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"aae15590-4d8a-4ef5-9519-1b29e65c77fe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.4480991} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6a68354f4bd54056ae06b137fdff97fb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34? 200 19ms","method":"GET","requestID":"6a68354f4bd54056ae06b137fdff97fb","responseTime":19,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a68354f4bd54056ae06b137fdff97fb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"43e0c3a348acdfe5c96e7f57f44fbcf0","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.217981,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43e0c3a348acdfe5c96e7f57f44fbcf0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248984,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f83c0e90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.041541,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f83c5cb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.296201376Z"}]},"request_id":"d28c8013-6923-42b2-b4f3-f036450ddf5a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.5329823} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f83c0e90-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"9fb91fb9-ea9c-4f89-8fbc-7f3e0f9ebf98","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.534411} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f83c5cb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8? 200 20ms","method":"GET","requestID":"f83c0e90-0158-11ef-926d-7f5be4425d00","responseTime":20,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34? 200 21ms","method":"GET","requestID":"f83c5cb0-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248212,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8484390-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.16824,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f84891b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.346694,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7148b675-d3ea-4c24-a79c-7628ef491d4e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6112728} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f848dfd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling 200 15ms","method":"POST","requestID":"f848dfd0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.296201376Z"}]},"request_id":"c3bba2ac-5e74-43b1-8cd9-dd9864714ffc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6193154} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8484390-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"bebff526-1ccc-4197-a8b2-714f78f76213","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6212778} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f84891b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdfa38b7d-9587-4430-af49-40f4e3ae2307#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdfa38b7d-9587-4430-af49-40f4e3ae2307","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"923ded51-da8d-465f-bf1a-0f90d0199288","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6298862} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4ee426f-d547-4397-bebc-e97572901f80","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.631141} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} device-1 | {"level":"info","message":"GET /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8? 200 30ms","method":"GET","requestID":"f8484390-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34? 200 30ms","method":"GET","requestID":"f84891b0-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43e0c3a348acdfe5c96e7f57f44fbcf0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bf6c6592-f569-4492-9eb5-024a5edb9905","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6339936} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.73913,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f84c1420-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling 200 14ms","method":"POST","requestID":"f84c1420-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b95cfaf0-49a2-4a40-b36d-1ad6be800feb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6415324} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.503276,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","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":"POST /experiments? 201 181ms","method":"POST","requestID":"43e0c3a348acdfe5c96e7f57f44fbcf0","responseTime":181,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43e0c3a348acdfe5c96e7f57f44fbcf0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f84d73b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling 200 13ms","method":"POST","requestID":"f84d73b0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e0dfaf84bae36fefeed816dbd77a0d86","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca03e7f0-d0ba-4551-899c-418a8d67a110","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6563826} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.143882,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0dfaf84bae36fefeed816dbd77a0d86"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.120265,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f84fe4b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.296201376Z"}]},"request_id":"f5440cc9-8d37-467a-b83a-559fdb3fa44b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.663877} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling 200 13ms","method":"POST","requestID":"f84fe4b0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0dfaf84bae36fefeed816dbd77a0d86"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Building connection plan"} 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":"a95e4111-e1bc-4c80-b09e-b5b76332b37a"},{"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":"f7754a7d-1be6-487a-80f2-c998013565e1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"af56899d-cf4b-452e-bd92-1a8dc2001cbd"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e0dfaf84bae36fefeed816dbd77a0d86"} device-1 | {"level":"info","message":"GET /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8? 200 18ms","method":"GET","requestID":"e0dfaf84bae36fefeed816dbd77a0d86","responseTime":18,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.058647,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8527cc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d5d6a34005e39dcd63544ca4a0d3066d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.89006,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5d6a34005e39dcd63544ca4a0d3066d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"14fe548e-7e40-476e-9b6f-5766cecb1a76","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.68331} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1e1eae43-6315-4371-a0f9-c8263e923d9b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.6836905} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:08.338361599Z"}]},"request_id":"b02d5a7a-9490-44d4-a4ad-e5f4381acc7b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.684274} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8527cc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5d6a34005e39dcd63544ca4a0d3066d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d5d6a34005e39dcd63544ca4a0d3066d"} device-1 | {"level":"info","message":"GET /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34? 200 14ms","method":"GET","requestID":"d5d6a34005e39dcd63544ca4a0d3066d","responseTime":14,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"f8527cc0-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"86aa2cf8-2b32-467d-9ae7-e964e9d1622d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.7306895} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.392711,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f85b5660-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling 200 8ms","method":"POST","requestID":"f85b5660-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eab8d480-b8bb-4326-b8a0-b1c64aec0dbb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.7417645} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.09016,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f85d0410-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling 200 9ms","method":"POST","requestID":"f85d0410-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"741d3550179d9379e0954d1d2d146c34","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"741d3550179d9379e0954d1d2d146c34","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"741d3550179d9379e0954d1d2d146c34"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","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/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"620a374f4adb30b9131423c574056680","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8503b3e3-a587-4772-aa23-444e74f7cbb1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.8308134} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.549205,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f86a98a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b 200 8ms","method":"GET","requestID":"f86a98a0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"620a374f4adb30b9131423c574056680","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"620a374f4adb30b9131423c574056680"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3c36d7a-fc49-44dc-af3c-d3e3fe0e35dd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.8557427} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.634602,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f86e6930-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling 200 8ms","method":"POST","requestID":"f86e6930-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c6cbc7e3-eb46-44f5-a381-aa1ae9b382f3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.8659675} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.411264,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f86fefd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling 200 9ms","method":"POST","requestID":"f86fefd0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f19527434374af0636db55d71c0eab52","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.312157,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f19527434374af0636db55d71c0eab52"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"} gateway-1 | {"time_local":"23/Apr/2024:10:05:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f19527434374af0636db55d71c0eab52"} experiment-1 | {"level":"info","message":"GET /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307 200 16ms","method":"GET","requestID":"f19527434374af0636db55d71c0eab52","responseTime":16,"status":200,"url":"/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"604557ce7466144b15574ebca32e18c4","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.861484,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"604557ce7466144b15574ebca32e18c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.200067,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866710,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMH0.WwofDlBLBHT2FCHFSd_3V_in93fNJ3NlA0J6YDUeHsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f87f8030-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F102b7e0a-41ac-49eb-a6ab-ce03acce0c9b': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"961ccc7e-ef12-44da-acf7-f1b7916384d1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.9855986} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a459a742-8c28-4f97-a1de-212f83945310","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866710.9860263} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"feb18b845f36fe544a1eaa6f03198692","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f87f8030-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4f765653ac87d5c420909e43eefd61cc","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"102b7e0a-41ac-49eb-a6ab-ce03acce0c9b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b 204 52ms","method":"DELETE","requestID":"f87f8030-0158-11ef-926d-7f5be4425d00","responseTime":52,"status":204,"url":"/peerconnections/102b7e0a-41ac-49eb-a6ab-ce03acce0c9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73877b71-3c4f-46c0-885c-6963fdfac7a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40e3977e-1da0-4a07-8ff3-78b9a46acc44","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.0432045} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.468114,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f88acad0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling 200 12ms","method":"POST","requestID":"f88acad0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdfa38b7d-9587-4430-af49-40f4e3ae2307': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdfa38b7d-9587-4430-af49-40f4e3ae2307","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"4bd97458-5c3c-4679-8307-53cafec03c36","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.0530586} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f815b35d-45d1-4cf3-8f49-420d4949b484","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.0533233} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"604557ce7466144b15574ebca32e18c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd8f1ef30-b10c-4114-a22e-ebcdd2689a34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47f33672-1f5b-4af5-9947-f689014ec071","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.0569487} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.794594,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f88d14c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling 200 10ms","method":"POST","requestID":"f88d14c0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"604557ce7466144b15574ebca32e18c4"} experiment-1 | {"level":"info","message":"DELETE /experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307 204 166ms","method":"DELETE","requestID":"604557ce7466144b15574ebca32e18c4","responseTime":166,"status":204,"url":"/experiments/dfa38b7d-9587-4430-af49-40f4e3ae2307"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2208","request_time":"2.207","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5a99b688eac0638f6b673e1c244a70a7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 125ms","method":"POST","requestID":"feb18b845f36fe544a1eaa6f03198692","responseTime":125,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.129","http_referrer":"","http_user_agent":"node-fetch","requestID":"feb18b845f36fe544a1eaa6f03198692"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 125ms","method":"POST","requestID":"4f765653ac87d5c420909e43eefd61cc","responseTime":125,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c2e2662fe11675e6b1a7f0bb4cbc3ef8","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.130","http_referrer":"","http_user_agent":"node-fetch","requestID":"4f765653ac87d5c420909e43eefd61cc"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.955596,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:11Z"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.739","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cb874518320d082aa991ed7797133b05"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866711,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2e2662fe11675e6b1a7f0bb4cbc3ef8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d8f1ef30-b10c-4114-a22e-ebcdd2689a34' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"77756830-0a80-4bcb-9036-7f07c93f1ee6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.1359468} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2e2662fe11675e6b1a7f0bb4cbc3ef8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/73877b71-3c4f-46c0-885c-6963fdfac7a8' 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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f962385-3b42-4646-9309-aa911dcc2b92","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.1407316} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2e2662fe11675e6b1a7f0bb4cbc3ef8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ba7a84f4-1810-42d0-bbd4-037a81d45b3b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.150632} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38971f4b-a1b5-46d9-85a9-fde4f49d5efb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.1512725} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2e2662fe11675e6b1a7f0bb4cbc3ef8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.150597845Z"}]},"request_id":"b6dfa669-ef59-4e54-add9-f68349fa6083","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.1572754} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2e2662fe11675e6b1a7f0bb4cbc3ef8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2e2662fe11675e6b1a7f0bb4cbc3ef8"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"c2e2662fe11675e6b1a7f0bb4cbc3ef8","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"78a240d9d0d324203970e04636d89831","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.724559,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866711,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"78a240d9d0d324203970e04636d89831"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7b4af266-f52f-4739-ae24-e5350b94389e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.189779} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"78a240d9d0d324203970e04636d89831"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41d1b81f-e56a-475c-ad70-38838d1d7aa8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.1946192} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"78a240d9d0d324203970e04636d89831"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"6c4b37c3-80ca-48e9-b512-690e9388c072","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.2048771} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d7e02ff-2af0-4e3a-8f80-4f413386d019","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.2050211} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"78a240d9d0d324203970e04636d89831"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"cab1ee10-1e27-40e0-b7de-7fa9a38a2dc5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.2092934} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"78a240d9d0d324203970e04636d89831"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"78a240d9d0d324203970e04636d89831","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"78a240d9d0d324203970e04636d89831"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b31efce5842452548330df17b04d74a8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.005627,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866711,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b31efce5842452548330df17b04d74a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"4095ae4b-f690-4cbc-8666-c451089df29e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.7013712} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b31efce5842452548330df17b04d74a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62397de0-3535-48f4-814f-670b518f0188","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.7066963} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b31efce5842452548330df17b04d74a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"c562e958-2753-407f-a325-277548e537e9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866711.748692} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b31efce5842452548330df17b04d74a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.065","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b31efce5842452548330df17b04d74a8"} device-1 | {"level":"info","message":"PATCH /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08 200 61ms","method":"PATCH","requestID":"b31efce5842452548330df17b04d74a8","responseTime":61,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b83619d1081694aac1dc7f420ac64a25","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.342963,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866711,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxMX0.AF4xhtuLCTcuVBxd2ZrSeJmo8PXEMtcqXggIp-XhiyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b83619d1081694aac1dc7f420ac64a25"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b83619d1081694aac1dc7f420ac64a25"} device-1 | {"level":"info","message":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/websocket 200 20ms","method":"POST","requestID":"b83619d1081694aac1dc7f420ac64a25","responseTime":20,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4c9bce85e031cfa883d8406a2d9f59ed","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/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":"4c9bce85e031cfa883d8406a2d9f59ed"} device-1 | {"level":"info","message":"OPTIONS /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/websocket 200 2ms","method":"OPTIONS","requestID":"4c9bce85e031cfa883d8406a2d9f59ed","responseTime":2,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0263f1089afdbae0b873e99ab3c7e308","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261146,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0263f1089afdbae0b873e99ab3c7e308"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0263f1089afdbae0b873e99ab3c7e308"} device-1 | {"level":"info","message":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/websocket 200 37ms","method":"POST","requestID":"0263f1089afdbae0b873e99ab3c7e308","responseTime":37,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"90522a6b701750c9432b05d2316a449c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.39228,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"90522a6b701750c9432b05d2316a449c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.150597845Z"}]},"request_id":"b0c48fb3-8c4d-4e00-8353-c4665e2b729c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.2648056} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"90522a6b701750c9432b05d2316a449c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71? 200 17ms","method":"GET","requestID":"90522a6b701750c9432b05d2316a449c","responseTime":17,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"90522a6b701750c9432b05d2316a449c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9e780024384a5e5a7a18ac79730d8781","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.269073,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9e780024384a5e5a7a18ac79730d8781"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"e26a1b93-887c-42e9-a38f-0582d416801e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.2899764} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9e780024384a5e5a7a18ac79730d8781"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e780024384a5e5a7a18ac79730d8781"} device-1 | {"level":"info","message":"GET /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08? 200 17ms","method":"GET","requestID":"9e780024384a5e5a7a18ac79730d8781","responseTime":17,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"63c474c9369aac1c85189097ccf9a4aa","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.156205,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"63c474c9369aac1c85189097ccf9a4aa"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.909165,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9ee2b60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.60765,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9ee7980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.150597845Z"}]},"request_id":"8ddbc920-7f24-44fc-a150-03c46787ed97","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.3760266} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9ee2b60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"c879f3be-7354-4922-a89e-8d438a16f7f6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.3767493} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9ee7980-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71? 200 15ms","method":"GET","requestID":"f9ee2b60-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08? 200 15ms","method":"GET","requestID":"f9ee7980-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.222826,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.861247,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9f927e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9f97600-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.075204,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f04007c4-b553-4f44-8f6c-ff6ab63bbc85","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.44781} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9f99d10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.150597845Z"}]},"request_id":"ddf5b63b-5312-4c0e-bd01-0c93d63cd915","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.454144} device-1 | {"level":"info","message":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling 200 14ms","method":"POST","requestID":"f9f99d10-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9f927e0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"ae3ea9e9-70bc-4ec9-857f-94f89a9afb89","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4550974} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9f97600-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71? 200 25ms","method":"GET","requestID":"f9f927e0-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d073183-f50c-4fc8-979d-b6587a701407","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4633777} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.489138,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} device-1 | {"level":"info","message":"GET /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08? 200 25ms","method":"GET","requestID":"f9f97600-0158-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9fc3520-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdef488be-c7c4-4bd2-b76f-58d4c993a045#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdef488be-c7c4-4bd2-b76f-58d4c993a045","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"f4248962-dc29-4cca-8f5b-780d20567dcd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4647906} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"21120011-9c76-4c2b-be8d-3b2c3504a5e8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4652538} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"63c474c9369aac1c85189097ccf9a4aa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling 200 13ms","method":"POST","requestID":"f9fc3520-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2ef682bc-0f9c-4d6e-a20a-f9469c94e3e9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4740047} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.135771,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9fde2d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.182","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"63c474c9369aac1c85189097ccf9a4aa"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"63c474c9369aac1c85189097ccf9a4aa","responseTime":174,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling 200 11ms","method":"POST","requestID":"f9fde2d0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6cc01e4dd92223aaad92331faff5bc02","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d913ee8-ab67-4efb-8b61-e501e2cc06e3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4879591} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.873272,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0005b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.028594,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6cc01e4dd92223aaad92331faff5bc02"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling 200 12ms","method":"POST","requestID":"fa0005b0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.150597845Z"}]},"request_id":"0c7bc85a-3480-40b6-8b70-212773b88467","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.4961069} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Building connection plan"} 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":"63083b8e-56a5-4947-8f57-535cb560727c"},{"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":"51041327-e15d-46c7-ac50-19c5eb4e93c5"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7a45d202-bfca-4f5b-b093-834472259ed8"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6cc01e4dd92223aaad92331faff5bc02"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} device-1 | {"level":"info","message":"GET /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71? 200 15ms","method":"GET","requestID":"6cc01e4dd92223aaad92331faff5bc02","responseTime":15,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.851497,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6cc01e4dd92223aaad92331faff5bc02"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0276b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"699ac5d11c5fee74cba0c280e4b16ce1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.242964,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"699ac5d11c5fee74cba0c280e4b16ce1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"9b5812cf-b83c-41d4-b7e9-e6eb25565853","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.5153308} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"14e560bc-5ffc-4fb5-9c66-2f587679840d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.5166318} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:11.204848387Z"}]},"request_id":"53765d62-f9f9-4be3-ace0-022a0b0ecd20","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.517088} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"699ac5d11c5fee74cba0c280e4b16ce1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0276b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"699ac5d11c5fee74cba0c280e4b16ce1"} device-1 | {"level":"info","message":"GET /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08? 200 16ms","method":"GET","requestID":"699ac5d11c5fee74cba0c280e4b16ce1","responseTime":16,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 38ms","method":"POST","requestID":"fa0276b0-0158-11ef-926d-7f5be4425d00","responseTime":38,"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"} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c5693f52-5930-416d-a480-731f955d7caa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.585468} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.051397,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0ed2c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0b28f7a21dedf360197d58e37bbb9b7e","responseTime":0,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling 200 13ms","method":"POST","requestID":"fa0ed2c0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"518d3e7c-620f-4408-b2b2-cfa1eedb1e5f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.600039} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.53804,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"0b28f7a21dedf360197d58e37bbb9b7e","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +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":"0b28f7a21dedf360197d58e37bbb9b7e"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa111cb0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling 200 10ms","method":"POST","requestID":"fa111cb0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling"} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","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/27232dc4-e565-466f-805c-124e6c91f5be' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a4f15f38628820ff09d07c0d5d07d359","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F27232dc4-e565-466f-805c-124e6c91f5be","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b5aa3cd-29cd-4734-90f4-4e2e71b6ba52","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.6569378} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.410239,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa19f650-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/27232dc4-e565-466f-805c-124e6c91f5be 200 7ms","method":"GET","requestID":"fa19f650-0158-11ef-926d-7f5be4425d00","responseTime":7,"status":200,"url":"/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"a4f15f38628820ff09d07c0d5d07d359","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +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":"a4f15f38628820ff09d07c0d5d07d359"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0c71d56-f00c-4a01-a904-1831d4045828","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.681686} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.209922,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa1d9fd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling 200 8ms","method":"POST","requestID":"fa1d9fd0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d9c8944c-d9d2-44fb-a399-2bcb66efd5d9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.6924188} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.294759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa1f2670-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling 200 9ms","method":"POST","requestID":"fa1f2670-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5d2ea843374d02a958f7a56c13c8fba5","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.078253,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d2ea843374d02a958f7a56c13c8fba5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"} experiment-1 | {"level":"info","message":"GET /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045 200 15ms","method":"GET","requestID":"5d2ea843374d02a958f7a56c13c8fba5","responseTime":15,"status":200,"url":"/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d2ea843374d02a958f7a56c13c8fba5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"338350ccf152f9ee55385d565ddfd83e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.198134,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"338350ccf152f9ee55385d565ddfd83e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.200872,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa2dcc70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f6400a47a062cb07b87495d9604e53af","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F27232dc4-e565-466f-805c-124e6c91f5be': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F27232dc4-e565-466f-805c-124e6c91f5be","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"5743f94a-5f5f-4173-b26c-40b068abdbb7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.8063023} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be"}}},"level":"info","message":"received a callback"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2fa450da-399f-4809-a9a5-0ed90fc050f6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.806461} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cb5d3830435b11e87056acbf9a896003","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa2dcc70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"data":{"peerconnection":"27232dc4-e565-466f-805c-124e6c91f5be","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/27232dc4-e565-466f-805c-124e6c91f5be 204 59ms","method":"DELETE","requestID":"fa2dcc70-0158-11ef-926d-7f5be4425d00","responseTime":59,"status":204,"url":"/peerconnections/27232dc4-e565-466f-805c-124e6c91f5be"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da1724ed-ecc4-4b85-9dc5-53e3a71248be","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.8708365} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.139136,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa3a2880-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling 200 15ms","method":"POST","requestID":"fa3a2880-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdef488be-c7c4-4bd2-b76f-58d4c993a045': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdef488be-c7c4-4bd2-b76f-58d4c993a045","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"c2346a7e-3d09-4461-ad21-22e2866dfee8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.8810313} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b5193a23-2cfb-43d3-a60b-17d02d9da73b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.8812866} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"338350ccf152f9ee55385d565ddfd83e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5839769f-4092-4d39-8fac-4e3c9bf6ff08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"56369754-2585-40b6-84f7-c6060c3c4f89","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.889395} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.652124,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa3cc090-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling 200 15ms","method":"POST","requestID":"fa3cc090-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045 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":"338350ccf152f9ee55385d565ddfd83e"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2214","request_time":"2.161","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"94e937f778fbe30e7c73fa83c9b9d944"} experiment-1 | {"level":"info","message":"DELETE /experiments/def488be-c7c4-4bd2-b76f-58d4c993a045 204 175ms","method":"DELETE","requestID":"338350ccf152f9ee55385d565ddfd83e","responseTime":175,"status":204,"url":"/experiments/def488be-c7c4-4bd2-b76f-58d4c993a045"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"f6400a47a062cb07b87495d9604e53af"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"f6400a47a062cb07b87495d9604e53af","responseTime":141,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"cb5d3830435b11e87056acbf9a896003","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"cb5d3830435b11e87056acbf9a896003"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"03dc95ddc4c008d975cf076ea7f2b84b","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.729","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"78a5c38c8dda300e3e733ff33accceb3"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.355589,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03dc95ddc4c008d975cf076ea7f2b84b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5839769f-4092-4d39-8fac-4e3c9bf6ff08' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5c7dc883-8b9f-4f5b-8c40-8799da3fcf71' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4acddf2b-93a7-443f-a543-f72f75881a86","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.9741948} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03dc95ddc4c008d975cf076ea7f2b84b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c58dab95-3f9d-4fe1-8133-52b46695b375","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.9791038} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03dc95ddc4c008d975cf076ea7f2b84b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"ab849da5-aa57-43f7-938d-8bc45f472831","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.9884355} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc18c4cf-cba5-4132-a9ed-bd6c0d3cb271","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.9886277} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03dc95ddc4c008d975cf076ea7f2b84b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"7b1d19e5-1af8-49fe-923b-c2d70c9d566b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866713.993397} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03dc95ddc4c008d975cf076ea7f2b84b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"03dc95ddc4c008d975cf076ea7f2b84b","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"03dc95ddc4c008d975cf076ea7f2b84b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e2652f70b957fe6466373a61886b5378","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.714028,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866713,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxM30.W8Nh4iu7EhPOOSpNKnvnMz8JLPrKGgxOju96ZRGkgTQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2652f70b957fe6466373a61886b5378"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c748f7e5-934a-4622-8941-49070406612e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.018127} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2652f70b957fe6466373a61886b5378"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0e4316f8-55af-449b-a431-1fe3f85233be","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.0226982} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2652f70b957fe6466373a61886b5378"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7631574a-9d00-482c-83ff-2bcf6a2e9583","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.0331109} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"edce5d22-16ab-45ec-8596-cbad85c8367d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.0333488} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2652f70b957fe6466373a61886b5378"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:14.033087716Z"}]},"request_id":"682c49e6-395e-4530-a180-37149db0655b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.037263} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2652f70b957fe6466373a61886b5378"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2652f70b957fe6466373a61886b5378"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"e2652f70b957fe6466373a61886b5378","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNH0.zl1o0VCpE2_f81up3Z8EHAqPKJhpz9y1mruXbYtMVBY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8746d232e3fdf2bbb0ef92535c553a95","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.811675,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866714,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNH0.zl1o0VCpE2_f81up3Z8EHAqPKJhpz9y1mruXbYtMVBY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8746d232e3fdf2bbb0ef92535c553a95"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"29ccdc03-550b-4c6c-aa0b-ecaa8be41c96","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.5245774} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8746d232e3fdf2bbb0ef92535c553a95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"132b8609-9a43-4602-8eb6-4c4e177435e7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.5294955} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8746d232e3fdf2bbb0ef92535c553a95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"c84bdd53-593a-48fe-a901-bff394897aeb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866714.5421276} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8746d232e3fdf2bbb0ef92535c553a95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5 200 30ms","method":"PATCH","requestID":"8746d232e3fdf2bbb0ef92535c553a95","responseTime":30,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5"} gateway-1 | {"time_local":"23/Apr/2024:10:05:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8746d232e3fdf2bbb0ef92535c553a95"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNH0.zl1o0VCpE2_f81up3Z8EHAqPKJhpz9y1mruXbYtMVBY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f1966df3c50c17eba25f50ce9686dac1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:14Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887645,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866714,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNH0.zl1o0VCpE2_f81up3Z8EHAqPKJhpz9y1mruXbYtMVBY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f1966df3c50c17eba25f50ce9686dac1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f1966df3c50c17eba25f50ce9686dac1"} device-1 | {"level":"info","message":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/websocket 200 14ms","method":"POST","requestID":"f1966df3c50c17eba25f50ce9686dac1","responseTime":14,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"899ee2d1f357c078cb026a7451b5a1d5","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/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":"899ee2d1f357c078cb026a7451b5a1d5"} device-1 | {"level":"info","message":"OPTIONS /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/websocket 200 1ms","method":"OPTIONS","requestID":"899ee2d1f357c078cb026a7451b5a1d5","responseTime":1,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e7601e8019376401a5e31b773939b77a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.240926,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7601e8019376401a5e31b773939b77a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"e7601e8019376401a5e31b773939b77a"} device-1 | {"level":"info","message":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/websocket 200 39ms","method":"POST","requestID":"e7601e8019376401a5e31b773939b77a","responseTime":39,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"3549b3aacc2575c1311f01ef0f453a86","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291748,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3549b3aacc2575c1311f01ef0f453a86"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"4ce717d8-493c-4b5e-be44-26dbbce46a5a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.1184883} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3549b3aacc2575c1311f01ef0f453a86"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3549b3aacc2575c1311f01ef0f453a86"} device-1 | {"level":"info","message":"GET /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5? 200 17ms","method":"GET","requestID":"3549b3aacc2575c1311f01ef0f453a86","responseTime":17,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4dfebbbd2f24b131af5c9a127c3e6a1f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.176547,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4dfebbbd2f24b131af5c9a127c3e6a1f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:14.033087716Z"}]},"request_id":"f08ff284-2bf6-4425-8049-688d4e66ce40","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.1439764} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4dfebbbd2f24b131af5c9a127c3e6a1f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4dfebbbd2f24b131af5c9a127c3e6a1f"} device-1 | {"level":"info","message":"GET /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d? 200 20ms","method":"GET","requestID":"4dfebbbd2f24b131af5c9a127c3e6a1f","responseTime":20,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c0feab5f5d8b31a65f9425cc6fcdcc00","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.644809,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c0feab5f5d8b31a65f9425cc6fcdcc00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.593409,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fba0e470-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656865,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fba10b80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"6e88ee63-bac7-426c-bb53-8a4f9922dc16","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.2258942} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fba0e470-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:14.033087716Z"}]},"request_id":"d8ab76dc-f8a5-478e-bb5d-2249dd41e0e9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.227116} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fba10b80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5? 200 22ms","method":"GET","requestID":"fba0e470-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d? 200 22ms","method":"GET","requestID":"fba10b80-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.083892,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.728724,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbabe0f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbac2f10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:57718","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.308095,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8906f473-2f4a-48ab-b033-5bd570ee6cbb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.2992363} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbac7d30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling 200 16ms","method":"POST","requestID":"fbac7d30-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"a4830f9f-edb0-4747-be54-3da8e76c7093","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3070722} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbabe0f0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:14.033087716Z"}]},"request_id":"bc05313a-7252-4fa4-8276-aef5bcef2cde","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3085852} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbac2f10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ccb3a57-b5cc-476b-9319-067712ffe50a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3163886} device-1 | {"level":"info","message":"GET /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5? 200 30ms","method":"GET","requestID":"fbabe0f0-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d? 200 29ms","method":"GET","requestID":"fbac2f10-0158-11ef-926d-7f5be4425d00","responseTime":29,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.397999,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbaf3c50-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"463b5175-570a-4579-af90-30f4c27a0ea8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3193667} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"861d0c20-28da-4ab6-9276-253e12b51edc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3197095} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c0feab5f5d8b31a65f9425cc6fcdcc00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} device-1 | {"level":"info","message":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling 200 16ms","method":"POST","requestID":"fbaf3c50-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04d4a8ff-8b84-4f1e-9e6e-ed9937a2a14a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3273673} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.220569,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbb0ea00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 171ms","method":"POST","requestID":"c0feab5f5d8b31a65f9425cc6fcdcc00","responseTime":171,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0feab5f5d8b31a65f9425cc6fcdcc00"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling 200 13ms","method":"POST","requestID":"fbb0ea00-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0cbbca9337e2ac67fd5a30006fb8ac16","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.858746,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0cbbca9337e2ac67fd5a30006fb8ac16"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"624b58e6-4e44-49fc-9dac-197cc3cf0477","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3394952} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.513934,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbb30ce0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling 200 11ms","method":"POST","requestID":"fbb30ce0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Building connection plan"} 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":"5de30afe-8cc2-4155-aff8-4b42a4d2e421"},{"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":"d4f70e8b-b4f4-43c7-a977-7907cde3c01b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"78590b68-f440-4d9f-afff-6b34f3ac99b9"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:13.988410481Z"}]},"request_id":"6a8cc983-f40f-4508-ba91-b70992dbf543","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.347184} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0cbbca9337e2ac67fd5a30006fb8ac16"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.854295,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0cbbca9337e2ac67fd5a30006fb8ac16"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} device-1 | {"level":"info","message":"GET /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5? 200 16ms","method":"GET","requestID":"0cbbca9337e2ac67fd5a30006fb8ac16","responseTime":16,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5?"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbb52fc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3892dd5a355a100c06af9fc67d996664","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"621db26b-998a-48a6-9fae-929f06f2fe55","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3599572} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1eab5096-3aa9-43f9-aaaa-955df549d337","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.3602538} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.762013,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbb52fc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3892dd5a355a100c06af9fc67d996664"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:14.033087716Z"}]},"request_id":"3ed72713-92a0-4c36-8068-028767f85cdd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.367488} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3892dd5a355a100c06af9fc67d996664"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"fbb52fc0-0158-11ef-926d-7f5be4425d00","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3892dd5a355a100c06af9fc67d996664"} device-1 | {"level":"info","message":"GET /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d? 200 37ms","method":"GET","requestID":"3892dd5a355a100c06af9fc67d996664","responseTime":37,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"39e22302-981e-44f5-aa2f-b35bad3d19e3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.4320848} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.643751,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbc116a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling 200 11ms","method":"POST","requestID":"fbc116a0-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31fb85a4-7157-426d-b8f3-ff61ab103683","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.443523} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.438275,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbc31270-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling 200 9ms","method":"POST","requestID":"fbc31270-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4ebe0616669de0f28c44a6a1cd77e366","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"4ebe0616669de0f28c44a6a1cd77e366","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +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":"4ebe0616669de0f28c44a6a1cd77e366"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","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/fc9ce79e-9914-46d3-a776-a2abfe89461a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fe8c9e3a5a9764dcf894a81d0db53b27","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc9ce79e-9914-46d3-a776-a2abfe89461a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c5d813f8-32ca-4d1d-b647-c53989c3c400","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.518929} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.656622,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbce8420-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a 200 8ms","method":"GET","requestID":"fbce8420-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"fe8c9e3a5a9764dcf894a81d0db53b27","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +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":"fe8c9e3a5a9764dcf894a81d0db53b27"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21f3a464-45eb-43fc-bec2-ee786b2623a2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.5444312} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.06955,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbd27bc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling 200 9ms","method":"POST","requestID":"fbd27bc0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eddb3e62-6244-47f7-b3b0-da4402c792c0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.5563784} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.177765,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbd42970-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling 200 10ms","method":"POST","requestID":"fbd42970-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a7ae7a5a3342950334a1fda57f732d1c","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.223157,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a7ae7a5a3342950334a1fda57f732d1c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a7ae7a5a3342950334a1fda57f732d1c"} experiment-1 | {"level":"info","message":"GET /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3 200 15ms","method":"GET","requestID":"a7ae7a5a3342950334a1fda57f732d1c","responseTime":15,"status":200,"url":"/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"02bcd3fe57119dc2d6a2638ddbf2cc22","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.97227,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02bcd3fe57119dc2d6a2638ddbf2cc22"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.217334,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbe344a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc9ce79e-9914-46d3-a776-a2abfe89461a': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc9ce79e-9914-46d3-a776-a2abfe89461a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"d65ae69d-d8e4-4bf0-8bcd-cc65ffca18a6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.6747699} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d01cfb9b-1144-473d-8957-2e4b1d9ef73c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.6751695} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"1ec5ba42e8505a5f7f0aea8360c0cce0","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbe344a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8b08717c9d4c41e5ef02d67280f2d4ba","responseTime":2,"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"fc9ce79e-9914-46d3-a776-a2abfe89461a","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a 204 52ms","method":"DELETE","requestID":"fbe344a0-0158-11ef-926d-7f5be4425d00","responseTime":52,"status":204,"url":"/peerconnections/fc9ce79e-9914-46d3-a776-a2abfe89461a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad8b62c4-c561-4e6e-9c43-f1e648a0075d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd112049-50ee-4b2c-a1ce-5cf7a9a5b679","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.7305157} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.541324,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbee8f40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling 200 14ms","method":"POST","requestID":"fbee8f40-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"a079d9cc-94ba-4a80-9489-bcf8f52efb77","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.7414584} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7adc9c1d-00fe-41b2-a55b-435061e62d31","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.742127} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02bcd3fe57119dc2d6a2638ddbf2cc22"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24d1b8df-d37b-4f1d-9744-f31f762973c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e48eb826-947d-40ba-8a03-3b6302c1b7b7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.7496278} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.949054,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fbf12750-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling 200 16ms","method":"POST","requestID":"fbf12750-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.179","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02bcd3fe57119dc2d6a2638ddbf2cc22"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2080","request_time":"2.245","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d396181d5ee7ce88f76da4f54b15062f"} experiment-1 | {"level":"info","message":"DELETE /experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3 204 175ms","method":"DELETE","requestID":"02bcd3fe57119dc2d6a2638ddbf2cc22","responseTime":175,"status":204,"url":"/experiments/4ed4ed2b-a4f7-47ed-8bb5-cbf940fce0f3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"1ec5ba42e8505a5f7f0aea8360c0cce0","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +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":"1ec5ba42e8505a5f7f0aea8360c0cce0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"8b08717c9d4c41e5ef02d67280f2d4ba","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"8b08717c9d4c41e5ef02d67280f2d4ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a71ce92caaff68a81b958d56f16af54c","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/24d1b8df-d37b-4f1d-9744-f31f762973c5' closed"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2161","request_time":"0.742","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"74ac9322cf388754b2e0aa190e25c79c"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.890334,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a71ce92caaff68a81b958d56f16af54c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ad8b62c4-c561-4e6e-9c43-f1e648a0075d' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fbe9d334-d7ad-4a4c-b647-fd090bd27c79","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.836292} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a71ce92caaff68a81b958d56f16af54c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d0a6cfe-2e24-4ccd-9fac-ae9a4580d630","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8411534} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a71ce92caaff68a81b958d56f16af54c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"340e9810-e643-4266-81b0-a55a37802179","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.850202} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c8220e55-d182-4788-b8e3-c5a91ce6edbc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8504033} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a71ce92caaff68a81b958d56f16af54c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"4071323c-9ed0-4092-8bdb-a23b61b64c3a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8552735} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a71ce92caaff68a81b958d56f16af54c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"a71ce92caaff68a81b958d56f16af54c","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a71ce92caaff68a81b958d56f16af54c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dc1c35abe12ee466e1e2df4bb6f3db2c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.827334,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866716,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxNn0.C1QIztI9IfTMCjHNTVFwJXHO9Fn-6_jWlXyf_8sNJIc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc1c35abe12ee466e1e2df4bb6f3db2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9a05600d-e1bb-4452-be03-e96662aaf65d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8812938} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc1c35abe12ee466e1e2df4bb6f3db2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2b5b6c86-2bbb-4cd9-bb06-fee0415ca3fa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8866465} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc1c35abe12ee466e1e2df4bb6f3db2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"152e0ffa-a796-4a90-8ad4-0cf1d90ec793","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8975165} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99ee35d5-4c52-4f0d-b3d9-1c663c532aa3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.8976269} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc1c35abe12ee466e1e2df4bb6f3db2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.897484606Z"}]},"request_id":"9677d01b-caba-4f53-b8f8-48aa35447b01","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866716.9021254} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc1c35abe12ee466e1e2df4bb6f3db2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dc1c35abe12ee466e1e2df4bb6f3db2c"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"dc1c35abe12ee466e1e2df4bb6f3db2c","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxN30.6T0LLQ2iNAe6Orqm1pdo5HZp9YA1yyLplws8fSgT3Lw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0e49f29b6e068c356e593719c732f21c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.34345,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866717,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxN30.6T0LLQ2iNAe6Orqm1pdo5HZp9YA1yyLplws8fSgT3Lw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e49f29b6e068c356e593719c732f21c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"68e3c96b-81af-4821-bcaf-5fa5c0714ab9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866717.3930984} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e49f29b6e068c356e593719c732f21c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f7a835d4-5f2f-4cae-b216-8d91f1149287","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866717.4002147} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e49f29b6e068c356e593719c732f21c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"49ce84b8-e486-4e5b-b8c2-28e6d392edc8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866717.4205356} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e49f29b6e068c356e593719c732f21c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0e49f29b6e068c356e593719c732f21c"} device-1 | {"level":"info","message":"PATCH /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad 200 48ms","method":"PATCH","requestID":"0e49f29b6e068c356e593719c732f21c","responseTime":48,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxN30.6T0LLQ2iNAe6Orqm1pdo5HZp9YA1yyLplws8fSgT3Lw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"00a3a742e70edaadb6d3a5a6be6574c1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.198587,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866717,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxN30.6T0LLQ2iNAe6Orqm1pdo5HZp9YA1yyLplws8fSgT3Lw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00a3a742e70edaadb6d3a5a6be6574c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/websocket 200 20ms","method":"POST","requestID":"00a3a742e70edaadb6d3a5a6be6574c1","responseTime":20,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"00a3a742e70edaadb6d3a5a6be6574c1"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"67a4a8716ef3366699df587530d93935","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/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":"67a4a8716ef3366699df587530d93935"} device-1 | {"level":"info","message":"OPTIONS /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/websocket 200 1ms","method":"OPTIONS","requestID":"67a4a8716ef3366699df587530d93935","responseTime":1,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOH0.aWod2mZx4b6eTojHEYZEqGfl0Z9RLk9BavVLEwwU-ZA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fa7b3754ff9d4ebf502c8e0fbbf4251d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.124718,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866718,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOH0.aWod2mZx4b6eTojHEYZEqGfl0Z9RLk9BavVLEwwU-ZA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa7b3754ff9d4ebf502c8e0fbbf4251d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","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":"fa7b3754ff9d4ebf502c8e0fbbf4251d"} device-1 | {"level":"info","message":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/websocket 200 38ms","method":"POST","requestID":"fa7b3754ff9d4ebf502c8e0fbbf4251d","responseTime":38,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOH0.aWod2mZx4b6eTojHEYZEqGfl0Z9RLk9BavVLEwwU-ZA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3d9e7b2aa1a0e8d74d6a60dc90dacc2e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:18Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.169652,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866718,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOH0.aWod2mZx4b6eTojHEYZEqGfl0Z9RLk9BavVLEwwU-ZA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d9e7b2aa1a0e8d74d6a60dc90dacc2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"d52bb3d3-516a-435d-9596-d8bf3e5f89a4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866718.987844} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d9e7b2aa1a0e8d74d6a60dc90dacc2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad? 200 18ms","method":"GET","requestID":"3d9e7b2aa1a0e8d74d6a60dc90dacc2e","responseTime":18,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d9e7b2aa1a0e8d74d6a60dc90dacc2e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOH0.aWod2mZx4b6eTojHEYZEqGfl0Z9RLk9BavVLEwwU-ZA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"af4c7f627406e7cd15b41d4f83fd7438","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.228096,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866718,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOH0.aWod2mZx4b6eTojHEYZEqGfl0Z9RLk9BavVLEwwU-ZA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af4c7f627406e7cd15b41d4f83fd7438"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.897484606Z"}]},"request_id":"0d13826f-aeb1-4057-a6b7-a3cb32daf3bb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.0150907} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af4c7f627406e7cd15b41d4f83fd7438"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee? 200 21ms","method":"GET","requestID":"af4c7f627406e7cd15b41d4f83fd7438","responseTime":21,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af4c7f627406e7cd15b41d4f83fd7438"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"504c58e87248eb72333c451f235c3299","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.327321,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"504c58e87248eb72333c451f235c3299"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.218894,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd57bc30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210096,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd57e340-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"b4a66635-bfb9-4624-a6ec-213a3cc021e5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.1036448} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd57bc30-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.897484606Z"}]},"request_id":"ae6c35eb-2120-4539-a518-2b7341eea6b1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.1051445} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd57e340-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad? 200 21ms","method":"GET","requestID":"fd57bc30-0158-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee? 200 22ms","method":"GET","requestID":"fd57e340-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.911579,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd62dfc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.891541,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd632de0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.757313,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0539a93-76fc-4534-9063-f0c6e4f31847","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.1759531} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd637c00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"6ed50066-2247-4dd0-9cf6-a204906d1171","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.1782439} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.897484606Z"}]},"request_id":"f20f2334-e436-4835-869f-327079e22a2a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.1803474} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd62dfc0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd632de0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling 200 22ms","method":"POST","requestID":"fd637c00-0158-11ef-926d-7f5be4425d00","responseTime":22,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0dde9640-f567-446b-83db-281c23f50fe5#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0dde9640-f567-446b-83db-281c23f50fe5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"1a65d09b-fe2b-484d-b201-6af006180a37","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.190471} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad? 200 26ms","method":"GET","requestID":"fd62dfc0-0158-11ef-926d-7f5be4425d00","responseTime":26,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c8207a2-2d40-4c2f-843c-5dd3d8fed374","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.1908038} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"504c58e87248eb72333c451f235c3299"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee? 200 27ms","method":"GET","requestID":"fd632de0-0158-11ef-926d-7f5be4425d00","responseTime":27,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90bfb778-ce17-4c74-b167-83c2c2f556ca","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2006269} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.798158,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd6773a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"504c58e87248eb72333c451f235c3299","responseTime":174,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"504c58e87248eb72333c451f235c3299"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling 200 13ms","method":"POST","requestID":"fd6773a0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"279594b9-8e66-42fc-98ee-e74dd050c686","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.207989} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.324561,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd685e00-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f586a8c12538702016181a0d170ad5f5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling 200 16ms","method":"POST","requestID":"fd685e00-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.815821,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f586a8c12538702016181a0d170ad5f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.850166854Z"}]},"request_id":"136eb9e6-3648-40f2-9c84-043b81bdfaf3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2215836} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0071b339-93d1-4b9e-bb40-d9dc94153e2b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2217724} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f586a8c12538702016181a0d170ad5f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.527921,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd6af610-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f586a8c12538702016181a0d170ad5f5"} device-1 | {"level":"info","message":"GET /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad? 200 17ms","method":"GET","requestID":"f586a8c12538702016181a0d170ad5f5","responseTime":17,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling 200 13ms","method":"POST","requestID":"fd6af610-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Building connection plan"} 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":"ff1c0f0d-9d47-4f9f-92f3-70658de1ea40"},{"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":"3a9c65ee-61f0-4537-9654-075463eb6048"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"2d2e9b40-f718-4b87-825b-bf62c7410120"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8c7539c750eef317dc9b5a069ea79680","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.723812,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd6d4000-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.900784,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866719,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcxOX0.ll4nEY3iZQQ54lopmBmtogjTMpCA6NElRVGipx3u4Tw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c7539c750eef317dc9b5a069ea79680"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:16.897484606Z"}]},"request_id":"0abf1548-3bfe-4107-abf7-bf6b664abd17","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2412348} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c7539c750eef317dc9b5a069ea79680"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee? 200 10ms","method":"GET","requestID":"8c7539c750eef317dc9b5a069ea79680","responseTime":10,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c7539c750eef317dc9b5a069ea79680"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"333ed0de-e4f4-4aab-b22d-90ec23a86148","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2449787} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"83914b6a-458f-4d25-b7c2-7b926892cbfa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2451048} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd6d4000-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"fd6d4000-0158-11ef-926d-7f5be4425d00","responseTime":29,"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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8127a51a-a4e5-4bbd-b3bb-7df4e8a2a8cd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.2954574} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.397922,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd7640b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling 200 9ms","method":"POST","requestID":"fd7640b0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"961f4b41-640b-4719-9c7e-a1f89dbc73b9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866719.3064024} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.392426,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd77ee60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling 200 11ms","method":"POST","requestID":"fd77ee60-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"985415576f7cae9a0fac388e7c88edc2","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"985415576f7cae9a0fac388e7c88edc2","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.016","http_referrer":"","http_user_agent":"node-fetch","requestID":"985415576f7cae9a0fac388e7c88edc2"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","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/48c5e6e4-4652-4955-be59-db9960b6e29e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d705cb10c071489354682cbc12af6854","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48c5e6e4-4652-4955-be59-db9960b6e29e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bf348c18-17c6-473a-9a37-4046007a4ec0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.392602} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.963381,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe1d5620-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e 200 14ms","method":"GET","requestID":"fe1d5620-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 42ms","method":"POST","requestID":"d705cb10c071489354682cbc12af6854","responseTime":42,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.046","http_referrer":"","http_user_agent":"node-fetch","requestID":"d705cb10c071489354682cbc12af6854"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"86639201-c617-4e92-9b5c-66008e1c51f8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.4287388} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.990872,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe22d460-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling 200 14ms","method":"POST","requestID":"fe22d460-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea8ee0cd-3db9-430a-9ca0-961a2514d84c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.445353} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.861014,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe256c70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling 200 13ms","method":"POST","requestID":"fe256c70-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8b7d9b1f32d5e227f21f3f9dca6ae020","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0dde9640-f567-446b-83db-281c23f50fe5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.232698,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866720,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b7d9b1f32d5e227f21f3f9dca6ae020"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/0dde9640-f567-446b-83db-281c23f50fe5"} experiment-1 | {"level":"info","message":"GET /experiments/0dde9640-f567-446b-83db-281c23f50fe5 200 16ms","method":"GET","requestID":"8b7d9b1f32d5e227f21f3f9dca6ae020","responseTime":16,"status":200,"url":"/experiments/0dde9640-f567-446b-83db-281c23f50fe5"} gateway-1 | {"time_local":"23/Apr/2024:10:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0dde9640-f567-446b-83db-281c23f50fe5 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8b7d9b1f32d5e227f21f3f9dca6ae020"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"64ebd9eb954c6e5a51378d9c2e9fb0ab","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0dde9640-f567-446b-83db-281c23f50fe5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.284038,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866720,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64ebd9eb954c6e5a51378d9c2e9fb0ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.300641,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866720,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe30b710-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48c5e6e4-4652-4955-be59-db9960b6e29e': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48c5e6e4-4652-4955-be59-db9960b6e29e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"f6f873f3-e224-4fab-8b88-9d83c4d4a5c9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.5399342} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"ca5b662547a20cfce5db4ce630219a93","responseTime":2,"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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"27a7867f-ef07-42e3-9368-38f5473891ee","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.5405092} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe30b710-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2208528bde4c317a7834e81e100a87f8","responseTime":2,"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"48c5e6e4-4652-4955-be59-db9960b6e29e","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e 204 52ms","method":"DELETE","requestID":"fe30b710-0158-11ef-926d-7f5be4425d00","responseTime":52,"status":204,"url":"/peerconnections/48c5e6e4-4652-4955-be59-db9960b6e29e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0dde9640-f567-446b-83db-281c23f50fe5"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ef8aafd-d827-4d21-ae26-34a0b42857ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8e3932e7-9bea-43c7-9dba-8a3dce1b2d5c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.5944693} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.115512,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe3c28c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling 200 13ms","method":"POST","requestID":"fe3c28c0-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0dde9640-f567-446b-83db-281c23f50fe5': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0dde9640-f567-446b-83db-281c23f50fe5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"ea7b20e1-2d6d-4879-9ea0-c26004477f51","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.605186} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7352419e-d80a-4ccc-b6bf-7a288f292d6e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.605535} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"64ebd9eb954c6e5a51378d9c2e9fb0ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33e331dd-e4c3-49b8-ac2e-a160a5d148ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2da09251-2a6f-4406-85c8-807e1c6fcbec","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.6114626} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.331757,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe3e99c0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling 200 15ms","method":"POST","requestID":"fe3e99c0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0dde9640-f567-446b-83db-281c23f50fe5"} gateway-1 | {"time_local":"23/Apr/2024:10:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0dde9640-f567-446b-83db-281c23f50fe5 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.179","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"64ebd9eb954c6e5a51378d9c2e9fb0ab"} gateway-1 | {"time_local":"23/Apr/2024:10:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2400","request_time":"3.220","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"44902c66c4dc6f73129db3a3bfa58295"} experiment-1 | {"level":"info","message":"DELETE /experiments/0dde9640-f567-446b-83db-281c23f50fe5 204 175ms","method":"DELETE","requestID":"64ebd9eb954c6e5a51378d9c2e9fb0ab","responseTime":175,"status":204,"url":"/experiments/0dde9640-f567-446b-83db-281c23f50fe5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"ca5b662547a20cfce5db4ce630219a93","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.137","http_referrer":"","http_user_agent":"node-fetch","requestID":"ca5b662547a20cfce5db4ce630219a93"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"2208528bde4c317a7834e81e100a87f8","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.138","http_referrer":"","http_user_agent":"node-fetch","requestID":"2208528bde4c317a7834e81e100a87f8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3a328556b99ef47c125c13a1f50e7a6c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} gateway-1 | {"time_local":"23/Apr/2024:10:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2156","request_time":"1.727","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"75d846accd2b3e403599f31c03e79492"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.96968,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866720,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a328556b99ef47c125c13a1f50e7a6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3ef8aafd-d827-4d21-ae26-34a0b42857ad' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d190ba3a-afb9-473c-995a-21b57cb7edda","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.6964657} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a328556b99ef47c125c13a1f50e7a6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"637611cd-fa0f-4541-b774-1d961149c587","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7014823} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a328556b99ef47c125c13a1f50e7a6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/33e331dd-e4c3-49b8-ac2e-a160a5d148ee' closed"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"43bd3151-8bd7-4438-85e8-27822709d78b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7136023} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4dbc5fd8-fa88-48fc-a266-1f900525b41f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7138515} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a328556b99ef47c125c13a1f50e7a6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"9decb805-5a3b-4ec6-8907-054e5b8185fe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7186463} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a328556b99ef47c125c13a1f50e7a6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"3a328556b99ef47c125c13a1f50e7a6c","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a328556b99ef47c125c13a1f50e7a6c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"58509eea591919dc191ec42f3adf1383","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.715535,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866720,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMH0.E6GC6SVtg3jCE8OfOm4-1oYNM9LV3T7FkRrnCSNrEUk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58509eea591919dc191ec42f3adf1383"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cdf89f90-3fe4-4167-90cf-4c06a3269e68","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7396538} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58509eea591919dc191ec42f3adf1383"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"19935c1d-746b-4fc3-9c9b-929984337b78","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7440088} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58509eea591919dc191ec42f3adf1383"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"127595a4-d911-40ad-9dc3-fd65e4cc5b1c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7532723} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e6a180a6-28d9-45c2-a8b1-0c18c9645e46","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.753575} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58509eea591919dc191ec42f3adf1383"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"c3e49c29-2552-45e1-ba9e-ab43138bee26","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866720.7575078} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"58509eea591919dc191ec42f3adf1383"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"58509eea591919dc191ec42f3adf1383"} device-1 | {"level":"info","message":"POST /devices? 201 34ms","method":"POST","requestID":"58509eea591919dc191ec42f3adf1383","responseTime":34,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"113cf39637233a651047981f98757422","responseTime":8,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"67e4cc3f4979a7fe67a87d79eb850cd0","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.886742,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"113cf39637233a651047981f98757422"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904731,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67e4cc3f4979a7fe67a87d79eb850cd0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"2ae6aab3-5824-4793-a70e-d73d86a0eead","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.2431495} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"113cf39637233a651047981f98757422"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"ca0f873b-7482-4500-a3b9-9dadfe5291bf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.2436676} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67e4cc3f4979a7fe67a87d79eb850cd0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7f021046-2425-49db-94bd-097c5c1dc330","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.2478726} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"113cf39637233a651047981f98757422"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"575f2e7b-53b5-46f4-ac42-2900e992498c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.249517} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67e4cc3f4979a7fe67a87d79eb850cd0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"44038756-bca9-4b96-9ba1-24625c189414","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.2514179} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67e4cc3f4979a7fe67a87d79eb850cd0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895 200 20ms","method":"PATCH","requestID":"67e4cc3f4979a7fe67a87d79eb850cd0","responseTime":20,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"67e4cc3f4979a7fe67a87d79eb850cd0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e9c1f0237416aebf764764157deb5993","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702837,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9c1f0237416aebf764764157deb5993"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"2c0afcbf-5ecd-4e32-a2a6-5cd0b90693c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.2667985} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"113cf39637233a651047981f98757422"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/56dae671-e12c-4b7b-98b2-17648ccaa519 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"113cf39637233a651047981f98757422"} device-1 | {"level":"info","message":"PATCH /devices/56dae671-e12c-4b7b-98b2-17648ccaa519 200 38ms","method":"PATCH","requestID":"113cf39637233a651047981f98757422","responseTime":38,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b6e103f7874d41e4f7df2bcd7b28adeb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628574,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/websocket 200 18ms","method":"POST","requestID":"e9c1f0237416aebf764764157deb5993","responseTime":18,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e9c1f0237416aebf764764157deb5993"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6e103f7874d41e4f7df2bcd7b28adeb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b6e103f7874d41e4f7df2bcd7b28adeb"} device-1 | {"level":"info","message":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/websocket 200 17ms","method":"POST","requestID":"b6e103f7874d41e4f7df2bcd7b28adeb","responseTime":17,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e12f242529d35e0c5d5719396974fed9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.286264,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e12f242529d35e0c5d5719396974fed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"67b66de7-7e10-4f2a-9872-4d1a7bbe9153","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.3166268} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e12f242529d35e0c5d5719396974fed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/56dae671-e12c-4b7b-98b2-17648ccaa519? 200 14ms","method":"GET","requestID":"e12f242529d35e0c5d5719396974fed9","responseTime":14,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/56dae671-e12c-4b7b-98b2-17648ccaa519? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e12f242529d35e0c5d5719396974fed9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8a8c8ef033534aa44859275cc8d8d9fe","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.125637,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a8c8ef033534aa44859275cc8d8d9fe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"195887c9-a451-4505-b67d-e1acca187612","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.3345368} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a8c8ef033534aa44859275cc8d8d9fe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a8c8ef033534aa44859275cc8d8d9fe"} device-1 | {"level":"info","message":"GET /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895? 200 12ms","method":"GET","requestID":"8a8c8ef033534aa44859275cc8d8d9fe","responseTime":12,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c7678d7c5cef7dc8e8ee29521f80775a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.885666,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c7678d7c5cef7dc8e8ee29521f80775a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6031,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"feb5eca0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.593328,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"feb63ac0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"11103096-76cd-4fcc-8e08-33d3ddc4636d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.3963635} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"feb5eca0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"31b57e9f-1601-4be8-99da-df8f37abcda1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.397134} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"feb63ac0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/56dae671-e12c-4b7b-98b2-17648ccaa519? 200 16ms","method":"GET","requestID":"feb5eca0-0158-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895? 200 15ms","method":"GET","requestID":"feb63ac0-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.767992,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"febfb0a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.615085,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"febffec0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"ebc9792d-ef4a-4354-9832-c6cf951d2917","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4660456} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"febfb0a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"a2e0418a-6f2a-459c-b5bd-2426c271bf55","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.467885} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3cf2020c-5660-4418-91a5-567eb0fad2d4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4686005} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"febffec0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.413445,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","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"} authorization-1 | {"level":"info","message":"POST /authorize 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fec025d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":18}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"92ad4f75-d999-449e-8a95-54b8e43a516e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4727185} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"764d964c-6e30-4885-a5fa-e60d6e1a3aa6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4730048} device-1 | {"level":"info","message":"GET /devices/56dae671-e12c-4b7b-98b2-17648ccaa519? 200 24ms","method":"GET","requestID":"febfb0a0-0158-11ef-926d-7f5be4425d00","responseTime":24,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895? 200 23ms","method":"GET","requestID":"febffec0-0158-11ef-926d-7f5be4425d00","responseTime":23,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c7678d7c5cef7dc8e8ee29521f80775a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling 200 27ms","method":"POST","requestID":"fec025d0-0158-11ef-926d-7f5be4425d00","responseTime":27,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8dd8eee3-9a4c-4ba4-97d3-8ec9b28c420e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4828815} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c7678d7c5cef7dc8e8ee29521f80775a"} experiment-1 | {"level":"info","message":"POST /experiments? 201 141ms","method":"POST","requestID":"c7678d7c5cef7dc8e8ee29521f80775a","responseTime":141,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.953178,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fec3f660-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4ed0459e-cc9f-4f58-90cb-a1b6a39f4fde","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4873946} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.881628,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","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"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fec492a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling 200 11ms","method":"POST","requestID":"fec3f660-0158-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7463235638068ecd142f12d3b84ba4fc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling 200 12ms","method":"POST","requestID":"fec492a0-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701155,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7463235638068ecd142f12d3b84ba4fc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3bcb1d19-e65a-4b02-8f3d-5900db0c7e9c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4952586} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.503378,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fec5f230-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.713578060Z"}]},"request_id":"a395a81a-f03d-47ef-adaf-152f05eb47c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.4991288} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling 200 8ms","method":"POST","requestID":"fec5f230-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7463235638068ecd142f12d3b84ba4fc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Building connection plan"} 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":"b72d3635-d147-4eb9-bcc5-4e27e3f98b6f"},{"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":"8a2f825d-a1d5-42b5-af2e-afd9ca6ff48a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"47c31a8c-933a-4014-a8bc-da2568bf7525"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/56dae671-e12c-4b7b-98b2-17648ccaa519? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7463235638068ecd142f12d3b84ba4fc"} device-1 | {"level":"info","message":"GET /devices/56dae671-e12c-4b7b-98b2-17648ccaa519? 200 11ms","method":"GET","requestID":"7463235638068ecd142f12d3b84ba4fc","responseTime":11,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.662251,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fec79fe0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3fad31fd265fe1c7672f95bb2c86bc26","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72043,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3fad31fd265fe1c7672f95bb2c86bc26"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7adb5cb8-de42-411f-8bb2-7ac8e286ecd3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.5160494} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:20.753248096Z"}]},"request_id":"72d909e6-2ec4-4fff-b33f-3c38f0223d0d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.5176575} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25f89584-3af2-4972-806f-b2c7a4f895bb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.5177267} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3fad31fd265fe1c7672f95bb2c86bc26"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fec79fe0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3fad31fd265fe1c7672f95bb2c86bc26"} device-1 | {"level":"info","message":"GET /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895? 200 15ms","method":"GET","requestID":"3fad31fd265fe1c7672f95bb2c86bc26","responseTime":15,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 40ms","method":"POST","requestID":"fec79fe0-0158-11ef-926d-7f5be4425d00","responseTime":40,"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"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"029526a9e22e51cf58d053b4e93dfd6d","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"029526a9e22e51cf58d053b4e93dfd6d","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +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":"029526a9e22e51cf58d053b4e93dfd6d"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"db1a252f-aa55-4431-95a0-4f972f76c1de","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.5775766} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.286482,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fed27550-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling 200 12ms","method":"POST","requestID":"fed27550-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a30fdfd-09c8-48c2-8346-b3e1d0d6fb11","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.5913532} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.316419,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fed49830-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling 200 8ms","method":"POST","requestID":"fed49830-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","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/378b30bf-2c8d-49be-b2a1-cea57e6b83bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9a37456685bf1949ec31d08bbe05857b","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F378b30bf-2c8d-49be-b2a1-cea57e6b83bb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"605ffc55-bbd2-43b1-9a31-d7e4b25d3389","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.622798} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.514974,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fed95320-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb 200 8ms","method":"GET","requestID":"fed95320-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"9a37456685bf1949ec31d08bbe05857b","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +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":"9a37456685bf1949ec31d08bbe05857b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90362cb1-6bae-4d84-b71f-af9288ecf113","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.6500947} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.482672,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fedd71d0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling 200 9ms","method":"POST","requestID":"fedd71d0-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa88d5b3-a61d-42e8-b783-f5fa71a8635c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.6618571} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.065412,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fedf1f80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling 200 14ms","method":"POST","requestID":"fedf1f80-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d394334ec45640c198b919911851ecde","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.161209,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d394334ec45640c198b919911851ecde"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d394334ec45640c198b919911851ecde"} experiment-1 | {"level":"info","message":"GET /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf 200 16ms","method":"GET","requestID":"d394334ec45640c198b919911851ecde","responseTime":16,"status":200,"url":"/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bd801c4b87f6e5e0097b81c2f0b0a67a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.646859,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bd801c4b87f6e5e0097b81c2f0b0a67a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.161534,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"feec3ee0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2f45565b2bbcd0ad05362242e41f0ee5","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F378b30bf-2c8d-49be-b2a1-cea57e6b83bb': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F378b30bf-2c8d-49be-b2a1-cea57e6b83bb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"7e0896ae-1f40-4b33-af77-5c4df004ecd1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.7564003} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3eb9cc1-8b75-4643-89d2-8bbde3d999ac","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.7567391} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"72e0e0413c8f74c0e6f1170b2d4bbb6f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"feec3ee0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"378b30bf-2c8d-49be-b2a1-cea57e6b83bb","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb 204 49ms","method":"DELETE","requestID":"feec3ee0-0158-11ef-926d-7f5be4425d00","responseTime":49,"status":204,"url":"/peerconnections/378b30bf-2c8d-49be-b2a1-cea57e6b83bb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e63e13d-4b09-4317-8c38-f0e2893ce895","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a7d47975-5cf9-4aa0-a6ae-aee8e082c275","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.8209643} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.76149,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fef73b60-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling 200 14ms","method":"POST","requestID":"fef73b60-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"67e2e574-fbaf-4b4a-8a9c-67a4fee081f6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.8290796} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1ebf8b2b-9405-484d-889b-72d4b6d16acc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.8296244} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bd801c4b87f6e5e0097b81c2f0b0a67a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56dae671-e12c-4b7b-98b2-17648ccaa519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8daf41d-237c-420b-aa5c-0eacbc07ee2d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.8384829} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.525159,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fef9fa80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling 200 13ms","method":"POST","requestID":"fef9fa80-0158-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/56dae671-e12c-4b7b-98b2-17648ccaa519/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd801c4b87f6e5e0097b81c2f0b0a67a"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.599","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"53c2fec0bfac1e8bac0a0a6997e55812"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2161","request_time":"0.612","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"24651817a35ce51c62134b969e713ab9"} experiment-1 | {"level":"info","message":"DELETE /experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf 204 164ms","method":"DELETE","requestID":"bd801c4b87f6e5e0097b81c2f0b0a67a","responseTime":164,"status":204,"url":"/experiments/5f1a33b1-4cb3-450a-9ea6-bf9c5edb26bf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"2f45565b2bbcd0ad05362242e41f0ee5","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"2f45565b2bbcd0ad05362242e41f0ee5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"72e0e0413c8f74c0e6f1170b2d4bbb6f","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"72e0e0413c8f74c0e6f1170b2d4bbb6f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e6b70e3896e74c443e00cedec0a8f41f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8e63e13d-4b09-4317-8c38-f0e2893ce895' closed"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.855812,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b70e3896e74c443e00cedec0a8f41f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/56dae671-e12c-4b7b-98b2-17648ccaa519' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"76c8755f-5b09-4400-a5bc-76096003a04e","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9193392} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b70e3896e74c443e00cedec0a8f41f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8532d81-cee2-4734-9d36-682b5c7e3bc1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9254313} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b70e3896e74c443e00cedec0a8f41f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"26dd91f3-76e7-4a95-91e5-28551aff6627","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9392407} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"30199efc-1759-4873-aa89-3f6931a43033","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9395669} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b70e3896e74c443e00cedec0a8f41f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"32905034-2f5f-4253-aa5a-bba9247ce75a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9445531} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b70e3896e74c443e00cedec0a8f41f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e6b70e3896e74c443e00cedec0a8f41f"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"e6b70e3896e74c443e00cedec0a8f41f","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3adfe878125aa6caab47cf137aa6673a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.98691,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866721,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMX0.TAylTfE-jKV-Oier4AxUZeBdxEKYZgHlJP_hTpRuCf4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3adfe878125aa6caab47cf137aa6673a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f739bece-c1ff-4a7f-bbd5-50c158470bdd","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9706404} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3adfe878125aa6caab47cf137aa6673a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1e8f4d1-9ac8-4043-b6fa-2f0d41cf1828","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9757178} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3adfe878125aa6caab47cf137aa6673a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"fdf0ef36-3a10-426b-8edf-0b55e3da6054","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9857967} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1effdba3-deaa-4589-bb15-a9a63b2fffb3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.9859965} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3adfe878125aa6caab47cf137aa6673a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"ff9d0839-791a-4279-a882-da78c84f946d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866721.99082} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3adfe878125aa6caab47cf137aa6673a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"3adfe878125aa6caab47cf137aa6673a","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3adfe878125aa6caab47cf137aa6673a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d0c051cf1292a703b4fef081d286238c","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4397bff4c2c125034ca9bdf9ae18df5c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.986821,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0c051cf1292a703b4fef081d286238c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.544215,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4397bff4c2c125034ca9bdf9ae18df5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"1d495658-f21a-496d-baf8-9fce322f452d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.4806945} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0c051cf1292a703b4fef081d286238c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"d7b7b93c-dc69-40e5-8950-56b6967c6980","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.4815497} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4397bff4c2c125034ca9bdf9ae18df5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"843933f4-477c-4897-ac9c-2879951af421","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.4858155} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0c051cf1292a703b4fef081d286238c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e31d0e5-7c11-41f6-ae77-e86f79cdbdb0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.4866898} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4397bff4c2c125034ca9bdf9ae18df5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"bd76751d-cccc-4f76-8364-c549220020d2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.4907947} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4397bff4c2c125034ca9bdf9ae18df5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d9af7556-645b-4e62-8c02-752dab4facf3 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.029","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4397bff4c2c125034ca9bdf9ae18df5c"} device-1 | {"level":"info","message":"PATCH /devices/d9af7556-645b-4e62-8c02-752dab4facf3 200 22ms","method":"PATCH","requestID":"4397bff4c2c125034ca9bdf9ae18df5c","responseTime":22,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"39632be8bfdb5cd1dd7647ea4a44a4cf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.748709,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39632be8bfdb5cd1dd7647ea4a44a4cf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"14ea3950-e974-4ce9-a20f-0496b63e3874","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.5116928} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0c051cf1292a703b4fef081d286238c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f 200 43ms","method":"PATCH","requestID":"d0c051cf1292a703b4fef081d286238c","responseTime":43,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d0c051cf1292a703b4fef081d286238c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fa81be47638fc107271be23b972ed47e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.930915,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"39632be8bfdb5cd1dd7647ea4a44a4cf"} device-1 | {"level":"info","message":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/websocket 200 24ms","method":"POST","requestID":"39632be8bfdb5cd1dd7647ea4a44a4cf","responseTime":24,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3/websocket"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa81be47638fc107271be23b972ed47e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fa81be47638fc107271be23b972ed47e"} device-1 | {"level":"info","message":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/websocket 200 17ms","method":"POST","requestID":"fa81be47638fc107271be23b972ed47e","responseTime":17,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d7c54891a3ad79b64ff010b77ddae8a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.814413,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d7c54891a3ad79b64ff010b77ddae8a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"5e132818-b444-448e-ab11-1e3eebed3d5a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.561562} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d7c54891a3ad79b64ff010b77ddae8a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f? 200 13ms","method":"GET","requestID":"3d7c54891a3ad79b64ff010b77ddae8a","responseTime":13,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d7c54891a3ad79b64ff010b77ddae8a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"91ec08e8741db69d1e9f46091b072f8f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.716744,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ec08e8741db69d1e9f46091b072f8f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"17a4f8b9-5cbb-4e9c-a059-e4f3202ad3b5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.5761569} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ec08e8741db69d1e9f46091b072f8f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d9af7556-645b-4e62-8c02-752dab4facf3? 200 10ms","method":"GET","requestID":"91ec08e8741db69d1e9f46091b072f8f","responseTime":10,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d9af7556-645b-4e62-8c02-752dab4facf3? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"91ec08e8741db69d1e9f46091b072f8f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"db5022b98b16ea2c61149ca044b4a05a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.780693,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db5022b98b16ea2c61149ca044b4a05a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.278419,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff7481b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.912325,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff74cfd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"08cfeb49-da50-4db7-b849-146006c4ee47","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.6467848} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff7481b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"4d43f08b-6b26-4574-82fd-ca5d70c5199f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.648039} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff74cfd0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f? 200 18ms","method":"GET","requestID":"ff7481b0-0158-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d9af7556-645b-4e62-8c02-752dab4facf3? 200 17ms","method":"GET","requestID":"ff74cfd0-0158-11ef-926d-7f5be4425d00","responseTime":17,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.476189,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.360816,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff7ff360-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff804180-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.726593,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e0521739-2551-46c7-83a4-0989dd594e69","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7203317} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff806890-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"b448888e-2d68-4ab6-a422-cdd8853c4d1a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7268462} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling 200 15ms","method":"POST","requestID":"ff806890-0158-11ef-926d-7f5be4425d00","responseTime":15,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff7ff360-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"3d0841cb-f20a-4172-b1ce-304cfa163744","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7287982} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff804180-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7adb192-7b79-4067-ada4-8cb5b74a4818#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7adb192-7b79-4067-ada4-8cb5b74a4818","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"adac0814-9d4e-42da-ae23-2e096754b90f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.733302} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"90a9b56b-65ed-4307-855f-4ebe448a5a9a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7338235} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"db5022b98b16ea2c61149ca044b4a05a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1b5fd732-6698-4f1c-92af-9ad07f254b2a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.737855} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.311063,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} device-1 | {"level":"info","message":"GET /devices/d9af7556-645b-4e62-8c02-752dab4facf3? 200 27ms","method":"GET","requestID":"ff804180-0158-11ef-926d-7f5be4425d00","responseTime":27,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f? 200 30ms","method":"GET","requestID":"ff7ff360-0158-11ef-926d-7f5be4425d00","responseTime":30,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff8327b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling 200 14ms","method":"POST","requestID":"ff8327b0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"db5022b98b16ea2c61149ca044b4a05a"} experiment-1 | {"level":"info","message":"POST /experiments? 201 166ms","method":"POST","requestID":"db5022b98b16ea2c61149ca044b4a05a","responseTime":166,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"db9913d4-f4f7-4161-a052-a6f3be7a2ee3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7520719} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.297714,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff8571a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ac3ff0ddb0e8261895bf55b46d7dd1bd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling 200 14ms","method":"POST","requestID":"ff8571a0-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.889755,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac3ff0ddb0e8261895bf55b46d7dd1bd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.939208233Z"}]},"request_id":"9eeef225-54bc-44a7-bfd4-cc0ca5eff869","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7667704} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7143628d-11a2-4ece-88b7-4b66eed22e1d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7669177} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac3ff0ddb0e8261895bf55b46d7dd1bd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.475953,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff87e2a0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f? 200 14ms","method":"GET","requestID":"ac3ff0ddb0e8261895bf55b46d7dd1bd","responseTime":14,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ac3ff0ddb0e8261895bf55b46d7dd1bd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling 200 10ms","method":"POST","requestID":"ff87e2a0-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Building connection plan"} 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":"b2d34013-ea8a-4769-9959-7c509ce81e22"},{"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":"b70244fe-eaf8-4239-9a1d-9e2dd1226dc8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"efae669d-2b33-4a90-990f-3a164b1f9e6a"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"32daabbc468e51cd77c84b61a7dba2cf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.011228,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff89de70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.55576,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"32daabbc468e51cd77c84b61a7dba2cf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:21.985768715Z"}]},"request_id":"ff596973-3508-450b-b596-d7841422d871","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7850773} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"32daabbc468e51cd77c84b61a7dba2cf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"50572e88-8b3a-473f-aaa4-4fd153d6b31c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.789397} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d9af7556-645b-4e62-8c02-752dab4facf3? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"32daabbc468e51cd77c84b61a7dba2cf"} device-1 | {"level":"info","message":"GET /devices/d9af7556-645b-4e62-8c02-752dab4facf3? 200 13ms","method":"GET","requestID":"32daabbc468e51cd77c84b61a7dba2cf","responseTime":13,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b153ff0a-7d07-40fe-8644-0b7dd6726228","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.7898195} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff89de70-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"ff89de70-0158-11ef-926d-7f5be4425d00","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"} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"88e501269ea7baffbebe476fc9c55441","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"74e81cf3-b766-4888-aaa5-bd79661d7660","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.8587487} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.812861,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","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":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"88e501269ea7baffbebe476fc9c55441","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +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":"88e501269ea7baffbebe476fc9c55441"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff95c550-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling 200 14ms","method":"POST","requestID":"ff95c550-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4ca38b52-c0cd-49cd-ac7a-2978609f9e93","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.874291} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.947963,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff980f40-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling 200 10ms","method":"POST","requestID":"ff980f40-0158-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling"} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","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/945e289f-20ee-4f86-a599-af0fefacfe81' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"69adfc73f600b8e938c09d842050b542","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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F945e289f-20ee-4f86-a599-af0fefacfe81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c84b62a-ec7b-4594-9da8-6b94aad9ad25","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.911488} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.700523,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff9e02b0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81 200 8ms","method":"GET","requestID":"ff9e02b0-0158-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"69adfc73f600b8e938c09d842050b542","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:22 +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":"69adfc73f600b8e938c09d842050b542"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"51a6e655-5c01-400a-962b-4b84fe06c14c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.9387774} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.681364,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffa22160-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling 200 9ms","method":"POST","requestID":"ffa22160-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9ef23a03-08d6-4dd5-9697-5e4b41a665b0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866722.9492738} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.833667,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffa3cf10-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling 200 9ms","method":"POST","requestID":"ffa3cf10-0158-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4a5202e08cb4944a2d2a7509f5d52fe1","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.132098,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866722,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyMn0.dhytD7aIZHiDE3UKSt6Pcqow69iGaI0u3CC43OXsk74"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a5202e08cb4944a2d2a7509f5d52fe1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"} experiment-1 | {"level":"info","message":"GET /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818 200 17ms","method":"GET","requestID":"4a5202e08cb4944a2d2a7509f5d52fe1","responseTime":17,"status":200,"url":"/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a5202e08cb4944a2d2a7509f5d52fe1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e7fc5299a29a33e0e4547108868c98d7","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.152174,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866723,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7fc5299a29a33e0e4547108868c98d7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.234443,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866723,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffb1ffe0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a7191a5f68448a99be0c1f179ba718fc","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fa0a57510135da0faa5589c865bd67a6","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","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81"}}},"level":"info","message":"received a callback"} 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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3"},{"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"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F945e289f-20ee-4f86-a599-af0fefacfe81': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F945e289f-20ee-4f86-a599-af0fefacfe81","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"60c5202b-8900-413d-87da-5900cd9ff3e0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.0686276} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"551d1807-c5fb-4118-beb3-abed924a1228","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.069017} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffb1ffe0-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"data":{"peerconnection":"945e289f-20ee-4f86-a599-af0fefacfe81","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81 204 52ms","method":"DELETE","requestID":"ffb1ffe0-0158-11ef-926d-7f5be4425d00","responseTime":52,"status":204,"url":"/peerconnections/945e289f-20ee-4f86-a599-af0fefacfe81"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9af7556-645b-4e62-8c02-752dab4facf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75749382-d168-40f6-8445-e2e1c2006835","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.1192687} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.804797,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffbd7190-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling 200 12ms","method":"POST","requestID":"ffbd7190-0158-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/d9af7556-645b-4e62-8c02-752dab4facf3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7adb192-7b79-4067-ada4-8cb5b74a4818': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7adb192-7b79-4067-ada4-8cb5b74a4818","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"b61e3078-4f7f-40e8-9b29-ec08e326d8b5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.1289885} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe81569e-b2a8-48b3-a75f-8321a4c2ebd5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.1294312} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7fc5299a29a33e0e4547108868c98d7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b28467f-a83d-43e0-84bf-53d3d412f15f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"79c9614a-cac0-42f5-8934-f45ac0f4c1c6","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.1361563} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.699013,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffbfbb80-0158-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling 200 14ms","method":"POST","requestID":"ffbfbb80-0158-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e7fc5299a29a33e0e4547108868c98d7"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.657","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7257dfbc5abf5b1ea7a78dfa36e44065"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2161","request_time":"0.671","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6c780d1ad728cbd704b917fa61e02a61"} experiment-1 | {"level":"info","message":"DELETE /experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818 204 172ms","method":"DELETE","requestID":"e7fc5299a29a33e0e4547108868c98d7","responseTime":172,"status":204,"url":"/experiments/a7adb192-7b79-4067-ada4-8cb5b74a4818"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"a7191a5f68448a99be0c1f179ba718fc","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +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":"a7191a5f68448a99be0c1f179ba718fc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"fa0a57510135da0faa5589c865bd67a6","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +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":"fa0a57510135da0faa5589c865bd67a6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E","level":"info","message":"auth send jwt"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d9af7556-645b-4e62-8c02-752dab4facf3' closed"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2fd15dc893ae416c89b7764f4a119f30","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.915005,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866723,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fd15dc893ae416c89b7764f4a119f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5b28467f-a83d-43e0-84bf-53d3d412f15f' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ce4e8e94-e9dd-4531-a5d8-fa32f013aec8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2229261} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fd15dc893ae416c89b7764f4a119f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b425e2c0-6f47-4d07-83f2-57ad1ee10a47","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.229672} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fd15dc893ae416c89b7764f4a119f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"7b238e07-61e6-429c-b114-413478a56963","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2411578} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7265727b-7abf-4f0c-9232-2586f71fc1e1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2414105} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fd15dc893ae416c89b7764f4a119f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.241122708Z"}]},"request_id":"e7a9e7b7-7168-436a-8ad7-eb2d997903ad","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2468174} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fd15dc893ae416c89b7764f4a119f30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"2fd15dc893ae416c89b7764f4a119f30","responseTime":47,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2fd15dc893ae416c89b7764f4a119f30"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2b04ff137a20ac3d6dbe7ad59bdf709b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.784322,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866723,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyM30.D9-21udecIKywAfR7OQy5mYlO9uTkX-LX_KInA24e2E"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b04ff137a20ac3d6dbe7ad59bdf709b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e4834dfc-2368-4def-8061-7a5edfae6029","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2713006} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b04ff137a20ac3d6dbe7ad59bdf709b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2edae20-7435-4e84-9d40-dc72cf2f31fa","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2760522} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b04ff137a20ac3d6dbe7ad59bdf709b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"8f0a9cb3-a044-4fb3-a8be-1b124b1136bf","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2858193} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da976298-ea9b-48d3-9878-82ce4652283d","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.2859287} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b04ff137a20ac3d6dbe7ad59bdf709b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.285775656Z"}]},"request_id":"30f223ed-ff21-4741-8a5d-dfda4ae9d1e2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866723.290475} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b04ff137a20ac3d6dbe7ad59bdf709b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"2b04ff137a20ac3d6dbe7ad59bdf709b","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b04ff137a20ac3d6dbe7ad59bdf709b"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c10b0285ffee79cb451d437fcc28e4f3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/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":"c10b0285ffee79cb451d437fcc28e4f3"} device-1 | {"level":"info","message":"OPTIONS /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/websocket 200 1ms","method":"OPTIONS","requestID":"c10b0285ffee79cb451d437fcc28e4f3","responseTime":1,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"51e306b0602cba7b79dff09e6ff03ea7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8a40bb5ce95caf3f7d4ba825809116cb","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/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":"8a40bb5ce95caf3f7d4ba825809116cb"} device-1 | {"level":"info","message":"OPTIONS /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/websocket 200 1ms","method":"OPTIONS","requestID":"8a40bb5ce95caf3f7d4ba825809116cb","responseTime":1,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/websocket"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70537,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"51e306b0602cba7b79dff09e6ff03ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"734a9d1c178b6c319e2aba463e103151","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670519,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"734a9d1c178b6c319e2aba463e103151"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/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":"51e306b0602cba7b79dff09e6ff03ea7"} device-1 | {"level":"info","message":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/websocket 200 41ms","method":"POST","requestID":"51e306b0602cba7b79dff09e6ff03ea7","responseTime":41,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/websocket 200 45ms","method":"POST","requestID":"734a9d1c178b6c319e2aba463e103151","responseTime":45,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/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":"734a9d1c178b6c319e2aba463e103151"} device-1 | {"level":"info","message":"device 'http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dde5e27f1537968f4be870b6f744bc75","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.032638,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dde5e27f1537968f4be870b6f744bc75"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.241122708Z"}]},"request_id":"efe86aa7-23c5-4215-bf4c-7352c03e1af5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.3219178} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dde5e27f1537968f4be870b6f744bc75"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dde5e27f1537968f4be870b6f744bc75"} device-1 | {"level":"info","message":"GET /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db? 200 17ms","method":"GET","requestID":"dde5e27f1537968f4be870b6f744bc75","responseTime":17,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"ee0f9faa4a236bce3343b6f7df3f1522","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.336759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee0f9faa4a236bce3343b6f7df3f1522"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.285775656Z"}]},"request_id":"e4d649c6-75e7-410d-babf-e3668e5cb0e9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.3487544} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee0f9faa4a236bce3343b6f7df3f1522"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee0f9faa4a236bce3343b6f7df3f1522"} device-1 | {"level":"info","message":"GET /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5? 200 17ms","method":"GET","requestID":"ee0f9faa4a236bce3343b6f7df3f1522","responseTime":17,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d0cf35c84b6e5b4c54e21c5244812af3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.406858,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0cf35c84b6e5b4c54e21c5244812af3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291072,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"011d76c0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.023478,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"011dc4e0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.241122708Z"}]},"request_id":"eaafe68b-42d5-4b1c-9738-00d5f360e77f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.431678} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"011d76c0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.285775656Z"}]},"request_id":"2d41be9c-0d7c-4760-b655-c8f62d1b9bba","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.4326875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"011dc4e0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db? 200 19ms","method":"GET","requestID":"011d76c0-0159-11ef-926d-7f5be4425d00","responseTime":19,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5? 200 18ms","method":"GET","requestID":"011dc4e0-0159-11ef-926d-7f5be4425d00","responseTime":18,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.919286,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.870913,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01284c30-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01287340-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.700248,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e273355e-466e-45e2-abc4-a217a75aecd0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.4981315} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01289a50-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling 200 11ms","method":"POST","requestID":"01289a50-0159-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.241122708Z"}]},"request_id":"1e92b6dc-be56-4247-9535-9b58fc916ebc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.503511} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01284c30-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.285775656Z"}]},"request_id":"d612dd74-5869-4aa3-a3c2-153850a20169","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.504695} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01287340-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb711b65f-7766-4c3a-b8cb-92170582f740#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb711b65f-7766-4c3a-b8cb-92170582f740","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"4a97f065-2e49-471a-b070-ad9a98c5fdf0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.5094156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ca8761e-f9b7-4760-804e-e2a137019841","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.5097494} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} device-1 | {"level":"info","message":"GET /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db? 200 21ms","method":"GET","requestID":"01284c30-0159-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0cf35c84b6e5b4c54e21c5244812af3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f35f09f-d754-4882-ab1a-86a45fe217db","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.5127962} device-1 | {"level":"info","message":"GET /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5? 200 21ms","method":"GET","requestID":"01287340-0159-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.409801,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"012abd30-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling 200 12ms","method":"POST","requestID":"012abd30-0159-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 162ms","method":"POST","requestID":"d0cf35c84b6e5b4c54e21c5244812af3","responseTime":162,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d0cf35c84b6e5b4c54e21c5244812af3"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"22707c84-0341-49cc-a98a-669e80dda3b4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.5259914} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.007312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"012cb900-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling 200 11ms","method":"POST","requestID":"012cb900-0159-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"be0c260b868cd1a275e3dbbe147b128b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e3c035c4-b746-4593-b5b1-2b523c5645b1","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.538164} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.885898,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.820167,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"be0c260b868cd1a275e3dbbe147b128b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"012eb4d0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.241122708Z"}]},"request_id":"57d7080a-1f96-4302-9992-02ecba49923a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.543237} device-1 | {"level":"info","message":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling 200 10ms","method":"POST","requestID":"012eb4d0-0159-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"be0c260b868cd1a275e3dbbe147b128b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"9ce675a2-6ee0-44a0-b716-9d1663b9f5a7"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"99485c8b-df50-40c3-b9f2-d0a528c8bd40"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d36e2dd1-7521-46ca-ba02-672bed912886"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be0c260b868cd1a275e3dbbe147b128b"} device-1 | {"level":"info","message":"GET /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db? 200 12ms","method":"GET","requestID":"be0c260b868cd1a275e3dbbe147b128b","responseTime":12,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db?"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.893309,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01308990-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ddff49388b307634c3f1ed5522bbfc6a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661742,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ddff49388b307634c3f1ed5522bbfc6a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"0f7cd815-892d-4d9f-968d-9c1a34557fa0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.559345} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9978d019-18c7-459e-b870-d8ade0eb5f74","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.5596132} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:23.285775656Z"}]},"request_id":"b0080dc6-3944-4284-9e8f-148ec23940e8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.5610757} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01308990-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ddff49388b307634c3f1ed5522bbfc6a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5? 200 17ms","method":"GET","requestID":"ddff49388b307634c3f1ed5522bbfc6a","responseTime":17,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ddff49388b307634c3f1ed5522bbfc6a"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"01308990-0159-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fb4deebd-0401-4d41-b430-e8d499f0fdb3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.615058} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.119867,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"013a9bb0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling 200 8ms","method":"POST","requestID":"013a9bb0-0159-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59fd994e-2d97-4b7f-b93f-e07ba313ebf5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.6243644} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.094328,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"013bfb40-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling 200 8ms","method":"POST","requestID":"013bfb40-0159-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0c150970-dfe9-4224-8db9-f9b5b005a37f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3a2308ac64295a8fac2ea6433abff491","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"3a2308ac64295a8fac2ea6433abff491","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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":"3a2308ac64295a8fac2ea6433abff491"} device-1 | {"data":{"peerconnection":"0c150970-dfe9-4224-8db9-f9b5b005a37f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"0c150970-dfe9-4224-8db9-f9b5b005a37f","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/0c150970-dfe9-4224-8db9-f9b5b005a37f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0c150970-dfe9-4224-8db9-f9b5b005a37f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"7412697428a030bae9b3db1e44f81af4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0c150970-dfe9-4224-8db9-f9b5b005a37f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3b22b6f8-4846-47d5-ad3b-a5e7ba4bfdef","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.8753045} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.259061,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0161f9d0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f 200 11ms","method":"GET","requestID":"0161f9d0-0159-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 39ms","method":"POST","requestID":"7412697428a030bae9b3db1e44f81af4","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.043","http_referrer":"","http_user_agent":"node-fetch","requestID":"7412697428a030bae9b3db1e44f81af4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7cc3241e-5b56-473f-9932-caacbcf08b89","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.9103072} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.076335,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01675100-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling 200 13ms","method":"POST","requestID":"01675100-0159-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2f73a2e1-c3e5-495c-bddf-1ce441cacc77","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866725.9251862} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.55654,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01699af0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling 200 12ms","method":"POST","requestID":"01699af0-0159-11ef-926d-7f5be4425d00","responseTime":12,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"01cb0c6c5d6b3fbbfef3e016d4ff9603","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b711b65f-7766-4c3a-b8cb-92170582f740"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.20856,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01cb0c6c5d6b3fbbfef3e016d4ff9603"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b711b65f-7766-4c3a-b8cb-92170582f740"} experiment-1 | {"level":"info","message":"GET /experiments/b711b65f-7766-4c3a-b8cb-92170582f740 200 17ms","method":"GET","requestID":"01cb0c6c5d6b3fbbfef3e016d4ff9603","responseTime":17,"status":200,"url":"/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"} gateway-1 | {"time_local":"23/Apr/2024:10:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b711b65f-7766-4c3a-b8cb-92170582f740 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"01cb0c6c5d6b3fbbfef3e016d4ff9603"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c95975912e726c78d61b2ead7273cc67","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b711b65f-7766-4c3a-b8cb-92170582f740"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.669457,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c95975912e726c78d61b2ead7273cc67"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:25Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.498184,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866725,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNX0.SGoTyORSQlgTYLgnoopQ_A76fQgmVR92c_pgOBXnRC0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01755ac0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0c150970-dfe9-4224-8db9-f9b5b005a37f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0c150970-dfe9-4224-8db9-f9b5b005a37f': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0c150970-dfe9-4224-8db9-f9b5b005a37f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"17bf0147-e04d-48ec-a59b-1dd7d4e2ed90","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.019615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20e59adc-ec0a-45ca-8916-528a878bf204","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.0201776} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c631e14a0589e4053da0d6c53cfe50b6","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01755ac0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b446843c7364e5863a19bcd938d85e14","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f 204 50ms","method":"DELETE","requestID":"01755ac0-0159-11ef-926d-7f5be4425d00","responseTime":50,"status":204,"url":"/peerconnections/0c150970-dfe9-4224-8db9-f9b5b005a37f"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11a38d74-b1f0-4f35-a2bf-1f1f7de7e131","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.0734153} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.627941,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01800920-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling 200 13ms","method":"POST","requestID":"01800920-0159-11ef-926d-7f5be4425d00","responseTime":13,"status":200,"url":"/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5/signaling"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb711b65f-7766-4c3a-b8cb-92170582f740': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb711b65f-7766-4c3a-b8cb-92170582f740","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"32fc0fda-fe0d-4aee-98b8-750d69d199e4","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.0815523} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"824bf68c-7248-400e-bc46-8f8184335b81","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.0816822} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c95975912e726c78d61b2ead7273cc67"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99a67fec-f6f4-4c9d-ad44-431a65a513db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b25e99d-53cf-47fb-a168-8040cc7fffd3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.0862157} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.42016,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01825310-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling 200 9ms","method":"POST","requestID":"01825310-0159-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b711b65f-7766-4c3a-b8cb-92170582f740"} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b711b65f-7766-4c3a-b8cb-92170582f740 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.165","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c95975912e726c78d61b2ead7273cc67"} experiment-1 | {"level":"info","message":"DELETE /experiments/b711b65f-7766-4c3a-b8cb-92170582f740 204 161ms","method":"DELETE","requestID":"c95975912e726c78d61b2ead7273cc67","responseTime":161,"status":204,"url":"/experiments/b711b65f-7766-4c3a-b8cb-92170582f740"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 118ms","method":"POST","requestID":"c631e14a0589e4053da0d6c53cfe50b6","responseTime":118,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +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.124","http_referrer":"","http_user_agent":"node-fetch","requestID":"c631e14a0589e4053da0d6c53cfe50b6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 118ms","method":"POST","requestID":"b446843c7364e5863a19bcd938d85e14","responseTime":118,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +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.125","http_referrer":"","http_user_agent":"node-fetch","requestID":"b446843c7364e5863a19bcd938d85e14"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNn0.6CBl_rzcWfWO03e16YLjco_n8zfi44dpwBmj5C3ueCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"594c810885949ddf78f920404361d01a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.961117,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866726,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNn0.6CBl_rzcWfWO03e16YLjco_n8zfi44dpwBmj5C3ueCU"} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2060","request_time":"0.865","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2e8616c342e221e98ef76b20d161f142"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"594c810885949ddf78f920404361d01a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"0.880","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bbdc9ce43d13f375a60fec23efa49aa3"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/99a67fec-f6f4-4c9d-ad44-431a65a513db' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/846b94e0-3c7e-4f78-88c6-fc65a32d0bf5' 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:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5d82611-30f6-494f-87db-07c8682287cb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d525c6a5-0418-456f-8adf-c25bb8721e77","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.1705487} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"594c810885949ddf78f920404361d01a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":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:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8402a099-3557-40f8-ac87-924af5d4b13b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.1750393} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"594c810885949ddf78f920404361d01a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5d82611-30f6-494f-87db-07c8682287cb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"a6b86631-524c-4a52-adb2-0b768b663bb8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.186177} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f04d7827-45a1-4c4e-a5fa-8dc7682feec9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.1863692} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"594c810885949ddf78f920404361d01a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5d82611-30f6-494f-87db-07c8682287cb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5d82611-30f6-494f-87db-07c8682287cb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.186151468Z"}]},"request_id":"ba63b002-169f-4d54-9d6a-4077334a6afe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.1904292} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"594c810885949ddf78f920404361d01a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"594c810885949ddf78f920404361d01a","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"594c810885949ddf78f920404361d01a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNn0.6CBl_rzcWfWO03e16YLjco_n8zfi44dpwBmj5C3ueCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6ebbfc8406f3d497d0f01e0a070c67f1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.892275,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866726,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyNn0.6CBl_rzcWfWO03e16YLjco_n8zfi44dpwBmj5C3ueCU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ebbfc8406f3d497d0f01e0a070c67f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d9cd9cbd-f48f-461b-8030-f1babfe31fbb","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.2159677} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ebbfc8406f3d497d0f01e0a070c67f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e223280-248e-4957-9575-5706258e302f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.220481} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ebbfc8406f3d497d0f01e0a070c67f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"97d6b20e-8388-475f-a1a5-57221dbb95d0","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.2303102} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"388c5d5c-c502-4772-8b5c-4e222dd4f433","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.230433} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ebbfc8406f3d497d0f01e0a070c67f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.230286864Z"}]},"request_id":"66d67c30-fa13-40e6-9c61-13818b43d0fc","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866726.233948} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ebbfc8406f3d497d0f01e0a070c67f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6ebbfc8406f3d497d0f01e0a070c67f1"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"6ebbfc8406f3d497d0f01e0a070c67f1","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"96d93a3c29bdf37aeefc2f9af51fd685","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/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":"96d93a3c29bdf37aeefc2f9af51fd685"} device-1 | {"level":"info","message":"OPTIONS /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/websocket 200 1ms","method":"OPTIONS","requestID":"96d93a3c29bdf37aeefc2f9af51fd685","responseTime":1,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a10eb096fc02aabf8269b0ce11aec6e5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.321598,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a10eb096fc02aabf8269b0ce11aec6e5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/websocket 200 36ms","method":"POST","requestID":"a10eb096fc02aabf8269b0ce11aec6e5","responseTime":36,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:05:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/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":"a10eb096fc02aabf8269b0ce11aec6e5"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7c547649db8c30c4ea8125ebbdb40b5a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.197369,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c547649db8c30c4ea8125ebbdb40b5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.230286864Z"}]},"request_id":"93bdab8a-8910-4dfc-85a4-9e9abb920784","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.3200114} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c547649db8c30c4ea8125ebbdb40b5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c547649db8c30c4ea8125ebbdb40b5a"} device-1 | {"level":"info","message":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? 200 16ms","method":"GET","requestID":"7c547649db8c30c4ea8125ebbdb40b5a","responseTime":16,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1cb9f5c6455a2fb3c826fb241c49e4ee","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.187228,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1cb9f5c6455a2fb3c826fb241c49e4ee"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.925023,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5d82611-30f6-494f-87db-07c8682287cb","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b5d82611-30f6-494f-87db-07c8682287cb","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02e2a660-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.317721,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02e2cd70-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5d82611-30f6-494f-87db-07c8682287cb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5d82611-30f6-494f-87db-07c8682287cb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.186151468Z"}]},"request_id":"7277e443-f76f-4cce-a255-69ff90a18fd7","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.4027843} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02e2a660-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.230286864Z"}]},"request_id":"81bb7aa1-7383-4f62-ba78-2543cedcd947","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.4035907} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02e2cd70-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b5d82611-30f6-494f-87db-07c8682287cb? 200 21ms","method":"GET","requestID":"02e2a660-0159-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/b5d82611-30f6-494f-87db-07c8682287cb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? 200 21ms","method":"GET","requestID":"02e2cd70-0159-11ef-926d-7f5be4425d00","responseTime":21,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.810341,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5d82611-30f6-494f-87db-07c8682287cb","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/b5d82611-30f6-494f-87db-07c8682287cb","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"451","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02e90f00-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"0cbac4fc-28a7-407e-9564-1201a9ab60f8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.466217} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b61a1d30-a3c9-4b91-a9ba-3faa59ebc4b5","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.4665768} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02e90f00-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 21ms","method":"POST","requestID":"02f06200-0159-11ef-9d6c-6b3810825369","responseTime":21,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/b5d82611-30f6-494f-87db-07c8682287cb?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 76ms","method":"POST","requestID":"02e90f00-0159-11ef-926d-7f5be4425d00","responseTime":76,"status":201,"url":"/devices/b5d82611-30f6-494f-87db-07c8682287cb?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.442652,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02fc21d0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:53598","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.827031,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02fc9700-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:43138","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.127438,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e315b01e-fa9f-43c4-99ff-e989389612e2","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.5704055} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02fce520-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:28.466160286Z"}]},"request_id":"f9960bb3-844c-4cf7-9642-14a3296ef531","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.575305} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02fc21d0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.230286864Z"}]},"request_id":"2caed7f6-d6fe-4cc9-97a7-298147e5cdfe","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.5797174} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02fc9700-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device 798c33fa-fdc1-4543-ad77-adc84005d564","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device 798c33fa-fdc1-4543-ad77-adc84005d564\n at Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:42:15)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"02fce520-0159-11ef-926d-7f5be4425d00"} device-1 | {"level":"info","message":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling 404 22ms","method":"POST","requestID":"02fce520-0159-11ef-926d-7f5be4425d00","responseTime":22,"status":404,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device 798c33fa-fdc1-4543-ad77-adc84005d564"},"status":404}},"level":"error","message":"Could not send status-update message"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/798c33fa-fdc1-4543-ad77-adc84005d564? 200 32ms","method":"GET","requestID":"02fc21d0-0159-11ef-926d-7f5be4425d00","responseTime":32,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564?"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8991951b-786b-4df3-9378-41e7e63ed0a5#owner@http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8991951b-786b-4df3-9378-41e7e63ed0a5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"c8c19afe-def7-4037-b613-de2b978e235c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.5894654} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c553f921-4e79-4c4c-bf30-66c1b8c29e64","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.589882} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? 200 32ms","method":"GET","requestID":"02fc9700-0159-11ef-926d-7f5be4425d00","responseTime":32,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1cb9f5c6455a2fb3c826fb241c49e4ee"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b31ddb66-e42c-409f-b969-b12c2f729381","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866728.5972419} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.740379,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"030103d0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5","user":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling 200 16ms","method":"POST","requestID":"030103d0-0159-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 270ms","method":"POST","requestID":"1cb9f5c6455a2fb3c826fb241c49e4ee","responseTime":270,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:05:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.276","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1cb9f5c6455a2fb3c826fb241c49e4ee"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f90d2da455978510bfa34ad8471e9f4e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/798c33fa-fdc1-4543-ad77-adc84005d564/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":"f90d2da455978510bfa34ad8471e9f4e"} device-1 | {"level":"info","message":"OPTIONS /devices/798c33fa-fdc1-4543-ad77-adc84005d564/websocket 200 2ms","method":"OPTIONS","requestID":"f90d2da455978510bfa34ad8471e9f4e","responseTime":2,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6InZzeXZsSUNzQ3VzZ203bXp2TzBQekNwZFlYZmFnb2RCVDJPaXFTQUNBZnNnWF9FWnNnVW1VZkd3YWJzX215RFlyckdNZTRJVmN1QW9lSkV0WDRWa3VnIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczMH0.F8KkhOXZJjLBfXSrqeYYqB5fLfHpGOlZLELB_7Y5K-c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b782e59ece5727cb7aab4efb8f615bcd","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:30Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.290448,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","payload":{"admin":true,"edgeToken":"vsyvlICsCusgm7mzvO0PzCpdYXfagodBT2OiqSACAfsgX_EZsgUmUfGwabs_myDYrrGMe4IVcuAoeJEtX4Vkug","iat":1713866730,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6InZzeXZsSUNzQ3VzZ203bXp2TzBQekNwZFlYZmFnb2RCVDJPaXFTQUNBZnNnWF9FWnNnVW1VZkd3YWJzX215RFlyckdNZTRJVmN1QW9lSkV0WDRWa3VnIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczMH0.F8KkhOXZJjLBfXSrqeYYqB5fLfHpGOlZLELB_7Y5K-c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b782e59ece5727cb7aab4efb8f615bcd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/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":"b782e59ece5727cb7aab4efb8f615bcd"} device-1 | {"level":"info","message":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/websocket 200 35ms","method":"POST","requestID":"b782e59ece5727cb7aab4efb8f615bcd","responseTime":35,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/websocket"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9b496fc5f235cb70d9bcd375d4323c22","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"connected":true,"description":"A JS test device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczMH0.MFO1HOXhnJZqLyPBZc81GwvCmZRVCfpKkaFWWyw8-9s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"dda2d9826a009f203682ce9510d9bd14","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:30Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.258372,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866730,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczMH0.MFO1HOXhnJZqLyPBZc81GwvCmZRVCfpKkaFWWyw8-9s"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dda2d9826a009f203682ce9510d9bd14"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:28.466160286Z"}]},"request_id":"efac3df7-2741-4bd1-81b6-f09e8a63c8ae","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866730.6623626} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dda2d9826a009f203682ce9510d9bd14"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"9b496fc5f235cb70d9bcd375d4323c22","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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":"9b496fc5f235cb70d9bcd375d4323c22"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/798c33fa-fdc1-4543-ad77-adc84005d564? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dda2d9826a009f203682ce9510d9bd14"} device-1 | {"level":"info","message":"GET /devices/798c33fa-fdc1-4543-ad77-adc84005d564? 200 21ms","method":"GET","requestID":"dda2d9826a009f203682ce9510d9bd14","responseTime":21,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczMH0.MFO1HOXhnJZqLyPBZc81GwvCmZRVCfpKkaFWWyw8-9s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dc7c837ca6834600f71a3dff732af092","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:30Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.219932,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866730,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczMH0.MFO1HOXhnJZqLyPBZc81GwvCmZRVCfpKkaFWWyw8-9s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc7c837ca6834600f71a3dff732af092"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.230286864Z"}]},"request_id":"d3d727c1-8192-4fd7-84de-2d953e424f8f","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866730.6889849} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc7c837ca6834600f71a3dff732af092"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dc7c837ca6834600f71a3dff732af092"} device-1 | {"level":"info","message":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? 200 18ms","method":"GET","requestID":"dc7c837ca6834600f71a3dff732af092","responseTime":18,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.262182,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"05fda200-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:44474","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"client_addr":"127.0.0.1:44474","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.649037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"05fdf020-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:28.466160286Z"}]},"request_id":"d511abb6-8b8d-4e00-a88a-5c70edb9da1a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.6169133} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"05fda200-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"},"timestamp":"2024-04-23T10:05:26.230286864Z"}]},"request_id":"53c65930-74b7-443a-a9df-6297e93de014","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.6187787} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"05fdf020-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/798c33fa-fdc1-4543-ad77-adc84005d564? 200 26ms","method":"GET","requestID":"05fda200-0159-11ef-926d-7f5be4425d00","responseTime":26,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710? 200 25ms","method":"GET","requestID":"05fdf020-0159-11ef-926d-7f5be4425d00","responseTime":25,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e8e49337-76ad-4121-951c-cca4900b97c9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.636958} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.959785,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"060235e0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling 200 14ms","method":"POST","requestID":"060235e0-0159-11ef-926d-7f5be4425d00","responseTime":14,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"89fc16dc-61aa-4bce-ae44-8eae40e5a670","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.6537826} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.024732,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0604cdf0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling 200 16ms","method":"POST","requestID":"0604cdf0-0159-11ef-926d-7f5be4425d00","responseTime":16,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"c408bbb3-6908-42f5-90cc-e39a716c59c1"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"126a2f04-321e-4075-93ea-fdf8635379dd"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"28530ac1-5f04-4b6a-91d3-624d3a2921bd"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.216319,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866728,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjcyOH0.XMPJfnsmFFWIF6SBKdn8v4Rki97b3BPJ0l1oEpu7qJI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0607db30-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5'. 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]}},"raw_response":{},"request_id":"b608006b-02d2-465a-8a7a-2a0a8f3fdd55","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.686664} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0c6f7d89-6f2b-428f-9106-85f9c66b9827","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.687091} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0607db30-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} 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":"0607db30-0159-11ef-926d-7f5be4425d00","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ff25ade0-5ae5-4c25-896b-74b02bd9cde9","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.7570128} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.373895,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0614d380-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling 200 9ms","method":"POST","requestID":"0614d380-0159-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd1ac95b-ea8e-43b2-ac5f-62a3da30148c","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.7674012} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.024809,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06165a20-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling 200 10ms","method":"POST","requestID":"06165a20-0159-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"e9916c6d4837f49438a58234bca0b7b3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"e9916c6d4837f49438a58234bca0b7b3","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"e9916c6d4837f49438a58234bca0b7b3"} device-1 | {"data":{"peerconnection":"4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","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/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"5e22e223b995c08aa707627c7e420929","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f09cb0a-0d64-4945-9df0-c1f590afd92a","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866733.991564} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.361468,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0638af30-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec 200 8ms","method":"GET","requestID":"0638af30-0159-11ef-926d-7f5be4425d00","responseTime":8,"status":200,"url":"/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"5e22e223b995c08aa707627c7e420929","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"5e22e223b995c08aa707627c7e420929"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3a2d5660-6be1-43f6-b895-c731f50b3240","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.0149589} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.463262,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"063c58b0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling 200 9ms","method":"POST","requestID":"063c58b0-0159-11ef-926d-7f5be4425d00","responseTime":9,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0dc233a2-78ef-4df4-9948-ff5bc4299620","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.0280373} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.650842,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"063e2d70-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling 200 10ms","method":"POST","requestID":"063e2d70-0159-11ef-926d-7f5be4425d00","responseTime":10,"status":200,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczNH0.oCvlh8DhnWtBszPhVRrW9aDbBachZ7UFGrdVNPlfDYA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ccc26e6b6ce9747ecab90376f3c8ec92","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.210181,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866734,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczNH0.oCvlh8DhnWtBszPhVRrW9aDbBachZ7UFGrdVNPlfDYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ccc26e6b6ce9747ecab90376f3c8ec92"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"} gateway-1 | {"time_local":"23/Apr/2024:10:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5 HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccc26e6b6ce9747ecab90376f3c8ec92"} experiment-1 | {"level":"info","message":"GET /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5 200 16ms","method":"GET","requestID":"ccc26e6b6ce9747ecab90376f3c8ec92","responseTime":16,"status":200,"url":"/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczNH0.oCvlh8DhnWtBszPhVRrW9aDbBachZ7UFGrdVNPlfDYA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"20a189646f0de32eefca9ab77e376fd6","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.954894,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"experiment:http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5","object_type":"experiment","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866734,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczNH0.oCvlh8DhnWtBszPhVRrW9aDbBachZ7UFGrdVNPlfDYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20a189646f0de32eefca9ab77e376fd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.098364,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"peerconnection:http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866734,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczNH0.oCvlh8DhnWtBszPhVRrW9aDbBachZ7UFGrdVNPlfDYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"064b25c0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a5c47f6-ed46-4d75-bf1c-3fe089c752ec': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a5c47f6-ed46-4d75-bf1c-3fe089c752ec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"ec3238f4-d518-4bde-a59a-b58c6c34e9e3","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.126375} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59161cee-18b2-4255-8e19-f348eaf4c7be","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.1265097} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"064b25c0-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9d2ecf2cd4e8681900e3190f5dd056d7","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"907d1382751ca40b42034b684d8158aa","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec 204 24ms","method":"DELETE","requestID":"064b25c0-0159-11ef-926d-7f5be4425d00","responseTime":24,"status":204,"url":"/peerconnections/4a5c47f6-ed46-4d75-bf1c-3fe089c752ec"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.114535,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","payload":{"admin":true,"edgeToken":"nQ_mShr74DyGcSspVeun3EdPeDBqoJA4rgfi1K6d7A2U_2G-OKYoBh1Y5c_fd-NZ86VKqZ8azbd29pgQHxhtVA","iat":1713866734,"sub":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5","subject_alt":"http://localhost/users/f77dbe9a-3218-4331-a933-a1c6c19cbda5"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2Y3N2RiZTlhLTMyMTgtNDMzMS1hOTMzLWExYzZjMTljYmRhNSIsImVkZ2VUb2tlbiI6Im5RX21TaHI3NER5R2NTc3BWZXVuM0VkUGVEQnFvSkE0cmdmaTFLNmQ3QTJVXzJHLU9LWW9CaDFZNWNfZmQtTlo4NlZLcVo4YXpiZDI5cGdRSHhodFZBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NjczNH0.oCvlh8DhnWtBszPhVRrW9aDbBachZ7UFGrdVNPlfDYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"446","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"064f1d60-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564'"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"670faa38-09b3-431a-9d1a-7e8192ba4c44","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.1493802} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"70a56404-0aa3-49d3-8937-ef94538dfd40","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.1496696} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"194","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"064f1d60-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"DELETE /devices/798c33fa-fdc1-4543-ad77-adc84005d564 204 29ms","method":"DELETE","requestID":"064f1d60-0159-11ef-926d-7f5be4425d00","responseTime":29,"status":204,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0844346-2678-4d2d-8e82-bdb8dde9f710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a88d855d-9b56-48b7-a5fa-ebbd81006085","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.190483} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.725402,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0656be80-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling 200 11ms","method":"POST","requestID":"0656be80-0159-11ef-926d-7f5be4425d00","responseTime":11,"status":200,"url":"/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","contextual_tuples":null,"store_id":"01HW56K0HDA2CRHACQDB34J7W7","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F798c33fa-fdc1-4543-ad77-adc84005d564","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2a459dd5-8898-45b3-bdfd-42663934308b","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.2042444} authorization-1 | {"client_addr":"127.0.0.1:53584","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.72759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:05:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","openfga":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","store":"01HW56K0HDA2CRHACQDB34J7W7"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564","object_type":"device","rebac_allow":false,"scope_allow":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","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0658e160-0159-11ef-926d-7f5be4425d00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} 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/798c33fa-fdc1-4543-ad77-adc84005d564/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"0658e160-0159-11ef-926d-7f5be4425d00"} device-1 | {"level":"info","message":"POST /devices/798c33fa-fdc1-4543-ad77-adc84005d564/signaling 404 13ms","method":"POST","requestID":"0658e160-0159-11ef-926d-7f5be4425d00","responseTime":13,"status":404,"url":"/devices/798c33fa-fdc1-4543-ad77-adc84005d564/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"} authorization-1 | {"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","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%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8991951b-786b-4df3-9378-41e7e63ed0a5': 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:40484","raw_request":{"authorization_model_id":"01HW56K0JQEEACEH6FR05J557M","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8991951b-786b-4df3-9378-41e7e63ed0a5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Ff77dbe9a-3218-4331-a933-a1c6c19cbda5"}]},"store_id":"01HW56K0HDA2CRHACQDB34J7W7","writes":null},"raw_response":{},"request_id":"87be9ec7-2a23-4188-b9ed-181c941b5da8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.236048} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:40484","raw_request":{"id":"01HW56K0JQEEACEH6FR05J557M","store_id":"01HW56K0HDA2CRHACQDB34J7W7"},"raw_response":{"authorization_model":{"id":"01HW56K0JQEEACEH6FR05J557M","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be6f84cb-057b-462f-865e-249037a291c8","store_id":"01HW56K0HDA2CRHACQDB34J7W7","subsystem":"openfga","timestamp":1713866734.2364788} authorization-1 | {"level":"info","message":"POST /relations/update 200 53ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20a189646f0de32eefca9ab77e376fd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":53}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"} gateway-1 | {"time_local":"23/Apr/2024:10:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.206","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"20a189646f0de32eefca9ab77e376fd6"} experiment-1 | {"level":"info","message":"DELETE /experiments/8991951b-786b-4df3-9378-41e7e63ed0a5 204 204ms","method":"DELETE","requestID":"20a189646f0de32eefca9ab77e376fd6","responseTime":204,"status":204,"url":"/experiments/8991951b-786b-4df3-9378-41e7e63ed0a5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 172ms","method":"POST","requestID":"9d2ecf2cd4e8681900e3190f5dd056d7","responseTime":172,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"9d2ecf2cd4e8681900e3190f5dd056d7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 172ms","method":"POST","requestID":"907d1382751ca40b42034b684d8158aa","responseTime":172,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05: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.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"907d1382751ca40b42034b684d8158aa"} gateway-1 | {"time_local":"23/Apr/2024:10:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1821","request_time":"3.687","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4197e79de66185b91764ee81eda3e298"} gateway-1 | {"time_local":"23/Apr/2024:10:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2195","request_time":"6.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":"7186987a09aa48fda4c0d2651ec2a923"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f0844346-2678-4d2d-8e82-bdb8dde9f710' closed"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564' closed"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"971db8c57c37e0b5384b59d02d0f8411","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"connected":false,"description":"A JS test device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/798c33fa-fdc1-4543-ad77-adc84005d564"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 2ms","method":"POST","requestID":"971db8c57c37e0b5384b59d02d0f8411","responseTime":2,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:05:34 +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.005","http_referrer":"","http_user_agent":"node-fetch","requestID":"971db8c57c37e0b5384b59d02d0f8411"} authentication-1 exited with code 0 federation-1 exited with code 0 experiment-1 exited with code 0 authorization-1 exited with code 0 device-1 exited with code 0 gateway-1 exited with code 0